3

我正在为我的应用程序使用 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'}}" />
4

2 回答 2

4

首先,最好将服务器上的日期保存为 UTC。所以在服务器上使用该方法DateTime.UtcNow

在向客户端发送数据时,如果您没有自定义格式化日期,我相信发送的日期也包含时区信息。dateAngularJS 可以使用过滤器处理正确的问题。看到这个小提琴http://jsfiddle.net/jHSLe/1/

于 2013-10-27T05:36:11.290 回答
2

假设您获得的日期是 UTC,您可以使用出色的 Moment.js 轻松将其转换为本地时间,如下所述:

http://momentjs.com/docs/#/manipulating/local/

于 2013-10-27T05:10:13.223 回答