1

我的应用程序从 JSON 中获取以下格式的日期时间值:

Created
"/Date(1335232596000)/"

为了在前端显示值,我写了一个js函数,代码如下:

 return new Date(parseInt(date.substr(6)));

然而,这显示了以下内容:

Mon Apr 23 2012 20:56:36 GMT-0500 (Central Daylight Time)

关于如何让日期显示如下的任何建议:

"04/23/2012 - 08:56:26pm CST" 
4

4 回答 4

2

您需要使用日期对象方法格式化您的日期:https ://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

或者使用一些外部库,比如Datejs

这是一个关于此的问题:在哪里可以找到有关在 JavaScript 中格式化日期的文档?

于 2012-08-17T21:49:49.540 回答
2

Date是一个 Javascript 对象。您可以使用日期对象方法来格式化它http://www.w3schools.com/jsref/jsref_obj_date.asp

var mydate = new Date()
var hours = mydate.getHours()
于 2012-08-17T21:50:02.207 回答
2

使用官方的jQuery Globalization Plugin 格式方法

Globalize.format( new Date(1955,10,5), "yyyy/MM/dd" );
// "1955/11/05"
Globalize.format( new Date(1955,10,5), "dddd MMMM d, yyyy" );
// "Saturday November 5, 1955"

有大量可用的日期格式选项

于 2012-08-17T22:47:37.693 回答
1

我的应用程序从 JSON 中获取以下格式的日期时间值:

创建“/日期(1335232596000)/”

不要在视图模型上使用通过使用上述格式进行DateTime序列化的属性,而是使用字符串属性并在服务器上进行格式化 => 使用真实的视图模型。JavaScriptSerializer

这是您可以格式化此 DateTime 的方法

DateTime date = ...
string created = date.ToString("MM/dd/yyyy hh:mm:sstt ") + GetTimeZoneName(date);
// pass the created string to the view

whereTimeZoneName定义如下:

public static string GetTimeZoneName(DateTime date)
{
    var name = TimeZone.CurrentTimeZone.IsDaylightSavingTime(date)
        ? TimeZone.CurrentTimeZone.DaylightName
        : TimeZone.CurrentTimeZone.StandardName;

    var newName = "";
    var parts = name.Split(' ');
    foreach (var s in parts)
    {
        if (s.Length >= 1)
        {
            newName += s.Substring(0, 1);
        }
    }
    return newName;
}

现在在您的视图中,您将收到格式化的日期,因为它必须被格式化。如果由于某种原因您还需要Date在视图中以 javascript 对象的形式显示此日期,您还可以将 DateTime 属性保留在视图模型上,并且序列化程序将同时包含这两者。

于 2012-08-17T22:27:14.687 回答