格式化JSON日期

时间:2012-08-17 21:40:25

标签: javascript jquery asp.net-mvc json

我的应用程序以下列格式从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 个答案:

答案 0 :(得分:2)

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

或者使用像Datejs这样的外部库。

以下是关于此的问题:Where can I find documentation on formatting a date in JavaScript?

答案 1 :(得分:2)

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

对其进行格式化
var mydate = new Date()
var hours = mydate.getHours()

答案 2 :(得分:2)

使用官方jQuery Globalization Plugin format method

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"

有大量date formatting options可用。

答案 3 :(得分: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

其中TimeZoneName的定义如下:

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;
}

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