Являются ли функции даты/времени Javascript зависимыми от клиентской машины?

Мне было интересно, будут ли функции даты/времени Javascript всегда возвращать правильные, универсальные даты/время или, если Javascript является языком на стороне клиента, они зависят от того, на какой клиентской машине установлена ​​дата.

Если это зависит от клиентской машины, каков наилучший способ получить правильное универсальное время?

Ответ 1

Как сказал thomasrutter, функции даты javascript зависят от клиентской машины. Однако если вы хотите получить авторитетную дату, которую вы можете сделать, и запрос ajax на ваш сервер, который просто вернет строку даты. Затем вы можете преобразовать строку даты в объект даты со следующим

var ds = ... // Some ajax call
var d = new Date(ds);

Ответ 2

Javascript знает только о правильном времени в качестве среды, в которой он в настоящее время работает, и Javascript client-side.

Итак, Javascript во власти пользователя, имеющего правильное время, и часовой пояс, настройки на ПК, на котором они просматриваются.

Если у пользователя неправильный часовой пояс, но правильное время, функции, зависящие от часовых поясов, таких как getUTCDate(), будут неверными.

Если у пользователя неправильное время, все связанные с временем функции в Javascript будут неверными.

Можно было бы утверждать, однако, что если пользователю нужны правильные времена на их ПК, они установили бы правильное время. Считается, что пользователь может не знать, как это сделать.

Ответ 3

Методы выполняют то, что они документируют. Лучший способ получить UTC-информацию, очевидно, использовать методы UTC:

getUTCFullYear(), getUTCMonth(), getUTCDate() и т.д.

Ответ 4

или, если Javascript является языком на стороне клиента, они зависят от того, на что установлена ​​клиентская машина.

Да, это правильно.

Если это зависит от клиентской машины, каков наилучший способ получить правильное универсальное время?

Чтобы получить время/дату из авторитетного источника, а не с клиентской машины.