【发布时间】:2018-08-31 14:04:59
【问题描述】:
我的 AngularJS 客户端以纪元毫秒为单位将日期值传递给使用 C#.NET 的服务器。我的客户端和服务器位于不同的时区。我从客户端传递日期值如下,它返回纪元毫秒:
var date = $scope.date.getTime()
如果我从客户那里选择了一个日期为“2018 年 1 月 16 日星期二 00:00:00 GMT+0530(印度标准时间)”,则纪元值对应到 1516041000000
但是当我将此纪元传递到我的服务器端时,GMT/UTC 时间,即 Monday, January 15, 2018 6:30:00 PM 正在保存到我的数据库。
我试图通过我的 API 标头将 GMT 偏移量传递给我的服务器,并将偏移量值添加到 UTC 时间。但这会在夏令时导致问题,因为不同日期值的偏移量不同。
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
var savedDate = epoch.AddMilliseconds(long.Parse(passedDateEpoch)).AddMinutes(ClientGmtOffset);
有没有办法使用纪元时间值本身将输入的确切日期保存在服务器数据库中。我不希望将任何时间部分或不正确的日期保存到数据库中。
【问题讨论】:
标签: javascript c# asp.net angularjs momentjs