получить серверное время на стороне клиента в javascript / jquery - PullRequest
1 голос
/ 21 сентября 2011

Я хочу использовать на стороне клиента даты, которые находятся на стороне сервера.
например, если текущее время на стороне сервера равно «2011-09-21 15:00:00», я хочу иметь возможность получить объект javascript Date с этим значением («15: 00: 00») , даже если клиент находится в другом часовом поясе.
что я пробовал до сих пор:
Предположим, что серверное время равно «15: 00: 00», а клиентское - «17: 00: 00». По какой-то причине объект Date, который я получаю на стороне клиента, всегда содержит «16: 00: 00».
вот что я пробовал:
1. отправка объекта .net DateTime клиенту (он сериализуется как "Date\12345...\"), и на стороне клиента преобразует его в Date объект:

function parseServerDate(strDate) {
    return new Date(parseInt(strDate.substr(6)));
}

ИЛИ преобразование объекта .net DateTime в номер UTC:

    // returns the number of milliseconds since Jan 1, 1970 (useful for converting C# dates to JS dates)
    public static double UnixTicks(this DateTime dateTime)
    {
        DateTime epoch = new DateTime(1970, 1, 1);
        DateTime d2 = dateTime.ToUniversalTime();
        TimeSpan ts = new TimeSpan(d2.Ticks - epoch.Ticks);
        return ts.TotalMilliseconds;
    }

и создание нового Date объекта:
new Date(milliseconds) или new Date().setTime(milliseconds), оба из которых дали тот же результат, что и выше.

Должен ли я также отправить смещение часового пояса сервера и обработать разницу на стороне клиента?
Какой лучший способ это сделать?

1 Ответ

1 голос
/ 21 сентября 2011

Если речь идет об отображении, зачем вам нужен объект Date на стороне клиента? Почему бы просто не отправить серверу дату и время в виде строки и позволить клиенту отобразить их как есть?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...