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

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

0
Marty 1 Апр 2019 в 17:53

1 ответ

Лучший ответ

Формат, возвращаемый 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"));
0
NullDev 1 Апр 2019 в 15:49