Как округлить временную метку Google до следующей полуночи или полудня - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть дата возврата метки времени Google: "2019-04-01T14: 12: 22.223Z"

Я хочу преобразовать эту метку времени в ближайшую полночь или полдень (0:00:00 ИЛИ 12:00:00) в зависимости от поставленной метки времени.

1 Ответ

0 голосов
/ 01 апреля 2019

Google возвращает формат UTC.Вы можете «нормализовать» дату и округлить ее до 0:00 или 12:00, проверив, в каком диапазоне находится текущий час.

function normalizeTime(UTCDate){
    var nomalized = new Date(UTCDate);

    nomalized.setHours(
        nomalized.getHours()+1 >= 6 && nomalized.getHours()+1 < 18 ? 12 : 0
    );
    
    nomalized.setMinutes(0);
    nomalized.setSeconds(0);
    nomalized.setMilliseconds(0);
    
    return String(nomalized);
}

console.log(normalizeTime("2019-04-01T02:12:22.223Z"));
console.log(normalizeTime("2019-04-01T14:12:22.223Z"));
console.log(normalizeTime("2019-04-01T20:12:22.223Z"));
...