У меня есть следующее datetime, сохраненное в базе данных SQL Server 2005: 2012-12-06 16:20:11.010
.Целочисленное число Javascript для datetime с определенным часовым поясом
Я хочу, чтобы отобразить эту DateTime с помощью JavaScript на стороне клиента, так что я сериализовать его (как часть более крупного объекта) с помощью System.Web.Helpers.Json.Encode
, который работает следующий код:
internal static readonly long DatetimeMinTimeTicks = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).Ticks;
private static void SerializeDateTime(DateTime datetime, StringBuilder sb, JavaScriptSerializer.SerializationFormat serializationFormat)
{
if (serializationFormat == JavaScriptSerializer.SerializationFormat.JSON)
{
sb.Append("\"\\/Date(");
sb.Append((datetime.ToUniversalTime().Ticks - JavaScriptSerializer.DatetimeMinTimeTicks)/10000L);
sb.Append(")\\/\"");
return;
}
sb.Append("new Date(");
sb.Append((datetime.ToUniversalTime().Ticks - JavaScriptSerializer.DatetimeMinTimeTicks)/10000L);
sb.Append(")");
}
На стороне клиента, преобразовать его в объект даты и времени, как так: (JSFiddle)
var strDate = "/Date(1354828811010)/"; //value returned by above function
var re = /-?\d+/;
var m = re.exec(strDate);
var date = new Date(parseInt(m[0]));
на ПК с часовым поясом, установленным в Восточном стандарте, на этот раз правильно отображается в Thu Dec 06 2012 16:20:11 GMT-0500 (Eastern Standard Time)
. Однако на ПК с часовым поясом в качестве GMT-6 он возвращается как Thu Dec 06 2012 15:20:11 GMT-0600 (Central Standard Time)
.
На этот раз как Thu Dec 06 2012 16:20:11 GMT-0600 (Central Standard Time)
, но я не уверен, как наилучшим образом отображать его правильно. Мне не нужно отображать часовой пояс, мне просто нужно показать его как 16:20:11, независимо от настроек локального часового пояса пользователя.
Есть ли механизм в javascript, позволяющий мне ввести дату в определенный часовой пояс? Исследование, которое я сделал на нем, предполагает, что нет.
В противном случае, если мне нужно сделать сервер смены изменений, что мне лучше делать?
Я думаю, вы имеете в виду [toLocaleString] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toLocaleString) – V4Vendetta