我正在为我的应用程序使用ASP.NET MVC / ASP.NET Web API后端。当用户更新数据时,时间记录如下:
public HttpResponseMessage PutContent(int id, Content content)
{
if (id != content.ContentId)
{
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
try
{
content.ModifiedDate = DateTime.Now;
content.ModifiedBy = User.Identity.GetUserId();
_uow.Contents.Update(content);
_uow.Commit();
return Request.CreateResponse(HttpStatusCode.OK, content);
}
catch (Exception ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex);
}
}
当用户查看修改时间时,他们会看到我假设的是服务器时间。有没有办法让他们看到改变的当地时间?
请注意,我已经做了一些格式化但是我不确定是否有一种方法可以转换日期并使其与可能位于任何位置的本地用户相匹配:
<input disabled="disabled" type="text"
value="{{modal.data.modifiedDate | date:'MM/dd/yy HH:mm'}}" />
答案 0 :(得分:4)
首先,最好以UTC格式保存服务器上的日期。因此,在服务器上使用方法DateTime.UtcNow
。
在向客户端发送数据时,如果您没有自定义格式化日期,我相信发送日期也包含时区信息。 AngularJS可以使用date
过滤器处理正确的问题。看到这个小提琴http://jsfiddle.net/jHSLe/1/
答案 1 :(得分:2)
假设您获得的日期是UTC,您可以使用优秀的Moment.js轻松将其转换为当地时间,如下所述: