0
votes

Comment définir l'heure de l'objet de date javascript

J'ai deux widgets. Un calendrier et un widget de temps.

Mon calendrier est un objet DateTime Wed 29 avril 2020 00:00:00 GMT-0400 et mon heure renvoie ce résultat 1:00

Je voudrais combiner les deux pour créer un nouvel objet DateTime. Puis-je demander comment puis-je faire cela?

J'ai essayé ceci et cela n'a pas fonctionné du tout.

startDate.setTime(vm.startTime)


3 commentaires

Utilisez-vous un moment.js ou juste de la vanille?


@MenaiAlaEddine J'utilise Moment.js


Cela vous aidera! stackoverflow.com/questions/171251/...


3 Réponses :


0
votes

Je ne suis pas sûr, mais je pense que vous le voulez. J'espère avoir été utile

var startDate = { Date :"Wed Apr 29 2020 00:00:00 GMT-0400" };
var startTime  = { Time :"1:00 AM" };

var DateTime = { DateAndTime: startDate.Date + " " + startTime.Time};

console.log(DateTime);
//{ DateAndTime: 'Wed Apr 29 2020 00:00:00 GMT-0400 1:00 AM' }

Modifier:

var startDate = { Date :"Wed Apr 29 2020 00:00:00 GMT-0400" };
var startTime  = { Time :"1:00 AM" };


var DateTime  = Object.assign(startDate, startTime);

console.log(DateTime);
// { Date: 'Wed Apr 29 2020 00:00:00 GMT-0400', Time: '1:00 AM' }


2 commentaires

pas assez. C'est un objet avec deux propriétés. Une propriété DateTime et une propriété de temps. Je cherche un seul objet, objet DateTime.


Vouliez-vous dire un objet avec une propriété?



0
votes

Vous devez itérer vos entrées d'objets et obtenir des valeurs pour les combiner dans un tableau.

 mergeDateTime() {
    const DateTime = {
      a: "Wed Apr 29 2020 00:00:00 GMT-0400",
      b: "1:00 AM",
    };

    const mergedDateTime = [];
    for (let [key, value] of Object.entries(DateTime)) {
      mergedDateTime.push(value);
    }
    return mergedDateTime;
  }


0 commentaires

0
votes

Essayez de diviser votre chaîne de temps et de définir la valeur Heures de votre objet de date.

var startDate = "Wed Apr 29 2020 00:00:00 GMT-0400";
var startTime = "1:00 AM";

var result = new Date(startDate);

var hour = parseInt(startTime.split(":")[0]);
var minute = parseInt(startTime.split(":")[1].split(" ")[0]);
var amPmOffset = startTime.split(" ")[1] == "AM" ? 0 : 12;

result.setHours(hour, minute + amPmOffset, 0);

console.log(result.toString());


0 commentaires