1

データベースから日付値を取得してビューに表示しようとしていますが、問題は日付として表示されないことです。2012-02-03 00:00:00.000 をロードしようとすると、この /Date(1328207400000)/のように表示されます。私はasp.net MVC 3を使用しています

意見

<tbody id="Activities">

                </tbody>

脚本

function GetFilteredActivities()
{
    var selectedActivityId = $('#SelectedActionId').val();

    $.getJSON('@Url.Action("GetFilteredActivityLogs", "Document")', { actionTypeId: selectedActivityId }, function (FilteredActivities)
    {
        var ActivitySelect = $('#Activities');
        ActivitySelect.empty();
        $.each(FilteredActivities, function (index, activity)
        {
            ActivitySelect.append("<tr><td>" + activity.EmployeeNo + "</td><td>" + activity.EmployeeName + "</td><td>" + activity.Description + "</td><td>" + activity.DateCreated + "</td></tr>");
        });
    });
}
4

3 に答える 3

0

rrikeshが言うように、これはUNIXの日付です[1970年1月1日から経過した秒数]。次の行に沿ってac#DateTimeオブジェクトに変換してみてください。

public DateTime FromUnixEpoch(long unixSeconds)
{
    // create a date that is equal to 1st Jan 1970 (midnight)
    var convertedDate = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
    // add the unixSeconds onto the base date and return
    return convertedDate.AddSeconds(unixSeconds);
}

もちろん、ac#DateTimeをUNIX時間に変換する逆の場合もあります。

public double ToUnixEpoch(DateTime sourceDate)
{
    DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0).ToUniversalTime();
    TimeSpan span = (sourceDate.ToUniversalTime() - unixEpoch);
    return span.TotalSeconds;
}

[編集] -上記の場合[日付(1328207400000)]はミリ秒単位で保存されているようです。この場合、これをメソッドに組み込む必要があります(1000で割って秒に変換します)。また、上記の日付の正しい値は実際には02/02/2012 18:30であるため、基準日がUTCとして保存されているとは思いません(GMTより5:30時間進んでいると言って正しいでしょうか? ?すなわち、おそらくインドに拠点を置く??)。

とにかく、私は今物事から私の鼻を取り除きます:-)

于 2012-07-23T12:32:27.553 に答える
0

私はこれが好きでした。それは私のために働きました..彼らの経験を共有するすべての人に感謝します。皆さんありがとう...

var DateCreated = eval((activity.DateCreated).replace(/\/Date\((\d+)\)\//gi, "new Date($1)"));
                var date = DateCreated.toDateString();
                var time = DateCreated.toLocaleTimeString();
                var dateTime = (date+" "+time);
于 2012-07-24T11:53:52.210 に答える
0

この日付はUnix エポック形式です。取得した数値は、1970 年 1 月 1 日からの経過秒数です。出力として通常の日付を取得するには、これを変換する必要があります。

このツールを使用して、日付の値を確認できます。

于 2012-07-23T12:17:10.957 に答える