Date.now возвращает смещение в миллисекундах с 1970-01-01 UT C, оно не зависит от часовых поясов или перехода на летнее время, однако на него влияет точность часов хост-системы.
Для «универсальной» временной отметки следует использовать значения универсального координированного времени (UT C). Вы можете создать свою собственную строку, используя getUT C* методы, такие как getUTCFullYear , getUTCMonth , et c. или просто используйте строку, возвращаемую toISOString и переформатируйте детали в соответствии с требованиями.
Если вы просто хотите YYYY MM DD HH, тогда вы можете использовать очень простую функцию, значения уже заполнены нулями, поэтому трюк * 10
не требуется:
function timeDB(date = new Date()) {
return date.toISOString().split(/\D/).splice(0,4).join('');
}
console.log(timeDB());
На уже есть много вопросов и ответов о том, как отформатировать дату .
Однако, если вам просто нужно уникальное значение для управления версиями и только с использованием текущих дат, тогда достаточно использовать значение, возвращаемое Date.now . Это всего на 3 цифры дольше, и вы можете урезать его до 10 цифр, если вы будете sh:
String(Date.now()).slice(0,10);
Это эффективно дает вам метку времени в секундах с (довольно распространенной) эпохи 1970-01-01 и легко превращается в дату.