2016-04-20 3 views
2

Я сохраняю любые даты в MS SQLServer 2012 как datetime в UTC. Я хотел бы получить через coldfusion на бэкэнд в datetime и передать его браузеру, чтобы отформатировать его в браузере с помощью JavaScript и отформатировать его в локали пользователя через браузер.Какой формат даты и времени получить от сервера и перейти в браузер для форматирования в Javascript?

Какой формат datetime следует использовать для передачи объекта datetime с серверного сервера в браузер?

ответ

4

Какой формат datetime следует использовать для передачи объекта datetime с серверного сервера в браузер?

У вас есть по крайней мере два твердых варианта:

  1. отправить его в миллисекундах-так-The-Epoch или секундные так-The-Эпоха. Это число миллисекунд (или секунд), которое прошло с 1 января 1970 года в полночь UTC. В JavaScript вы получаете экземпляр Date с нескольких миллисекунд с эпохи «Эпоха» через new Date(num).

    Пример: Номер 1461139200000 однозначно идентифицирует 20 апреля 2016 года в 8 часов утра точно в формате UTC.

  2. Отправьте его как полную дату и время ISO-8601 с использованием UTC. Это поддерживается как входной формат для JavaScript-конструктора JavaScript Date во всех современных браузерах, так как он был добавлен в спецификацию JavaScript в 2009 году. (Details here, обратите внимание, что добавленное было подмножеством полного ISO-8601, поэтому мое использование слова «полная» дата/время.)

    Пример: Строка 2016-04-20T08:00:00.000Z однозначно идентифицирует 20 апреля 2016 года в 8 часов утра точно UTC.

    Обратите внимание, что IE8 был выпущен до этой спецификации и не поддерживает разбор этого формата строки. Но формат очень легко анализируется с помощью регулярного выражения, если вам нужно поддерживать устаревшие браузеры.

Преимущество второй формы в том, что это легче отлаживать при просмотре ответов HTTP и таких, как он в хорошей простой для восприятия человека формы.