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

また、データをクライアントに送信するときに、日付をカスタムフォーマットしていない場合、送信される日付にはタイムゾーン情報も含まれていると思います。AngularJS は、dateフィルターを使用してそれを正しく処理できます。このフィドルを参照してください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 に答える