У меня есть запланированная облачная функция, которая выполняется в часовом поясе Европы/Берлина. Короче говоря, мне нужно получить номер дня в году.
Для этого я использовал этот код:
https://coderhelper.com/a/8619946/4195212
В то время, когда я пишу это, если я запущу код во фрагменте ответа, опубликованном выше, он покажет мне 221 (что правильно). Но в моей облачной функции это 220.
Я подумал, что мне нужно правильно установить часовой пояс, что я и сделал. Но все равно показывает неправильный номер дня.
Что здесь не так?
exports.scheduledFunction2 = functions.region('europe-west3').pubsub.schedule('every minute').timeZone("Europe/Berlin").onRun((context) => {
var now = new Date();
var start = new Date(now.getFullYear(), 0, 0);
var diff = (now - start) + ((start.getTimezoneOffset() - now.getTimezoneOffset()) * 60 * 1000);
var oneDay = 1000 * 60 * 60 * 24;
var day = Math.floor(diff / oneDay);
console.log('Day of year: ' + day); // prints 220
})
Часовой пояс по умолчанию в планировщике установлен на (Америка/Лос-Анджелес).
Да, но я изменил его на
timeZone("Europe/Berlin")
medium.com/geekculture/…