Как получить дату компа в миллисекундах?
Написал для этого JS код:
let chas = "60000"; // 1минута это 60000 миллисекунд var now = new Date().getTimezoneOffset(); //в перем now получаем смещение UTC относит моего пояса в минутах например -120 var millisek_smesh = Number(chas) * Number(now); //в перем millisek_smesh получаем смещение UTC относит моего пояса в миллисек var date = new Date(); var mil = date.getTime(); // текущую дату в миллисекундах, но еще не сместил var millisek_smesh_itog = Number(millisek_smesh) + Number(mil); // Изменую текущую дату на смещение [[ITOG]] = millisek_smesh_itog По итогу в переменой ITOG дата в миллисекундах меньше на 4 часа от той что должна получится. Где ошибка? Вот например у меня пояс UTC+2 и на моем компе в 03.12.2022 14:34 этот JS выдаёт значение в миллисекундах: 1670063686503 , что по факту равняется 03.12.2022 10:34:46,503 |
mik888em, число в миллисекундах, которое ты получаешь через getTime() очевидно считается от 1970-01-01 UTC и потому никак не зависит от твоего часового пояса.
|
Сам разобрался. Вот готовый JS код может кому-то будет полезно: let chas = "60000"; var now = new Date().getTimezoneOffset(); //now -120 var millisek_smesh = Number(chas) * Number(now); var date = new Date(); var mil = date.getTime(); if (millisek_smesh < 0) { var millisek_smesh_itog = Number(mil) - Number(millisek_smesh); } else { var millisek_smesh_itog = Number(mil) + Number(millisek_smesh); } [[ITOG]] = millisek_smesh_itog |
Number - не нужны - это техническая проблема.
В [[ITOG]] лежит какая-то рандомная неведомая хуйня - это логическая проблема. Ответ на вопрос Цитата:
Date.now() //или для более старых систем new Date().getTime() Всё. Это будет стандартный unix timestamp, точное время миллисекунд от "начала времён"(1970-01-01T00:00:00.000Z). Смешения и часовые пояса на это никак не влияют, т.к. это количество прошедших миллисекунд. Секунды идут сами по себе и одинаково везде, меняется лишь отображение в человекочитаемом виде. |
Aetae,
:yes: :lol: |
Часовой пояс GMT +3, время: 00:20. |