J'ai donc des données temporelles telles que:
10:45 PM
11:35 PM
12:06 AM
01:34 AM
Toutes ces heures sont en America/Los_Angeles
et il est garanti que chaque fois après le 09:00 PM
aujourd’hui dans ce fuseau horaire. Ainsi, les heures passées à minuit ont lieu demain.
Existe-t-il un moyen élégant de convertir ces heures du format actuel en objets moment.js
avec les heures épinglées au jour approprié?.
function getMomentFromTimeString(str) {
var t = moment(str, 'HH:mm A');
// Now t is a moment.js object of today's date at the time given in str
if (t.get('hour') < 22) // If it's before 9 pm
t.add('d', 1); // Add 1 day, so that t is tomorrow's date at the same time
return t;
}
Trouvé dans le document moment.js:
moment('10:45 PM', 'HH:mm a')
moment ('09: 00 ',' h: mm a '). format (' h: mm a ');
Vous pouvez utiliser la méthode tz()
:
var date = moment().tz("America/Los_Angeles").startOf('day');
date.hour(22);
date.minutes(45);
Puis convertissez-le en heure locale:
date.local().toDate();