[英]Handling Datetime datatype between javascript and WebApi 2
我想知道以下是否是在WebApi 2,Javascript和数据库中处理日期时间数据类型的正确方法。
从Javascript到WebApi的DateTime:
var date = new Date();
var datestring = date.toISOString();
//Send datestring to WebApi
从WebApi到Javascript的DateTime:
//on getting datetime value from `http.get` call
var dateFromServer = new Date(dateFromServer);
的WebAPI:
进入日期
datetime
数据库列中返回的datetime
datestring
从数据库获取日期并将日期返回给客户:
是的,如果您不想处理有关用户Timezone等的任何信息......这是一种可接受的方式。 只要确保您希望从服务器生成日期以进行比较或其他任何时候使用c# DateTime.UtcNow方法。 我认为拥有“全球UTC公约”是一个非常安全和良好的解决方案,但它有一些限制。
例如,如果您想在上午09:00(在每个用户的国家/地区)提醒位于不同时区的所有用户,则无法知道每个用户的“09:00”。
解决这个问题的一种方法(也是我更喜欢的方法)是将每个用户的时区信息分别存储在数据库中,每次想要进行比较时只需转换时间。
TimeZoneInfo.ConvertTimeFromUtc(time, this.userTimezone);
或者,如果要在服务器上存储所有时区信息,您可以:
使用以下格式将您的日期从javascript发送到服务器: “2014-02-01T09:28:56.321-10:00” ISO 8601还通过将Z替换为时区偏移的+或 - 值来支持时区。
使用“DateTimeOffset”类型声明您的WEB API 2日期类型。
最后使用“datetimeoffset”类型将日期存储在数据库中。
这样,无论何时在服务器或数据库上,您都可以获得有关用户时间和时区的所有信息。
你会发现这篇文章很有用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.