Shy*_*ikh 9 javascript c# datetime asp.net-web-api
我想知道以下是否是在WebApi 2,Javascript和数据库中处理日期时间数据类型的正确方法.
从Javascript到WebApi的DateTime:
var date = new Date();
var datestring = date.toISOString();
//Send datestring to WebApi
Run Code Online (Sandbox Code Playgroud)
从WebApi到Javascript的DateTime:
//on getting datetime value from `http.get` call
var dateFromServer = new Date(dateFromServer);
Run Code Online (Sandbox Code Playgroud)
的WebAPI:
进入日期
datestring返回的数据库列存储为数据类型datetime从数据库获取日期并将日期返回给客户:
是的,如果您不想处理有关用户Timezone等的任何信息......这是一种可接受的方式.只要确保您希望从服务器生成日期以进行比较或其他任何时候使用c#DateTime.UtcNow 方法.我认为拥有"全球UTC公约"是一个非常安全和良好的解决方案,但它有一些限制.
例如,如果您想在上午09:00(在每个用户的国家/地区)提醒位于不同时区的所有用户,则无法知道每个用户的"09:00".
解决这个问题的一种方法(也就是我喜欢的方法)是将每个用户的时区信息分别存储在数据库中,每次想要进行比较时只需转换时间.
TimeZoneInfo.ConvertTimeFromUtc(time, this.userTimezone);
Run Code Online (Sandbox Code Playgroud)
或者,如果要在服务器上存储所有时区信息,您可以:
使用以下格式将您的日期从javascript发送到服务器: "2014-02-01T09:28:56.321-10:00" ISO 8601还通过将Z替换为时区偏移的+或 - 值来支持时区.
使用"DateTimeOffset"类型声明您的WEB API 2日期类型.
最后使用"datetimeoffset"类型将日期存储在数据库中.
这样,无论何时在服务器或数据库上,您都可以获得有关用户时间和时区的所有信息.
你会发现这篇文章很有用
| 归档时间: |
|
| 查看次数: |
14181 次 |
| 最近记录: |