如何将JSON格式的日期字符串解析为日期格式

时间:2016-02-07 11:49:06

标签: javascript jquery asp.net json ajax

我正在做的是,使用ajax从数据库中获取数据并将其显示在html文本框中以进行更新。下面是我成功获取数据的Web方法代码。

<group android:checkableBehavior="single">
    <item
        android:id="@+id/nav_camera"
        android:icon="@drawable/ic_menu_camera"
        android:title="Import" />
    <item
        android:id="@+id/nav_gallery"
        android:icon="@drawable/ic_menu_gallery"
        android:title="Gallery" />
    <item
        android:id="@+id/nav_slideshow"
        android:icon="@drawable/ic_menu_slideshow"
        android:title="Slideshow" />
    <item
        android:id="@+id/nav_manage"
        android:icon="@drawable/ic_menu_manage"
        android:title="Tools" />
</group>

<item android:title="Communicate">
    <menu>
        <item
            android:id="@+id/nav_share"
            android:icon="@drawable/ic_menu_share"
            android:title="Share" />
        <item
            android:id="@+id/nav_send"
            android:icon="@drawable/ic_menu_send"
            android:title="Send" />
    </menu>
</item>


<group android:id="@+id/gruppe">
    <ListView android:id="@+id/file_list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:background="#111"/>
</group>

现在,当我从数据库获取数据时,我得到了这种格式[WebMethod] public static List<Employee> getEmployee() { var slist = new List<Employee>(); var db = new BLUEPUMPKINEntities(); slist = db.Employees.ToList(); return slist; } 的日期。我搜索google关于解析和将json日期字符串格式转换为html / javascript日期也使用第三方插件,如moment.js和jquery.ui但不解决我的问题。此外,我在这里分享我的代码,我从json格式的ajax中获取数据并在jquery数据表中显示它。

/Date(725828400000)/

我想要mm / dd / yyyy格式的日期。请帮我解决我的问题。

5 个答案:

答案 0 :(得分:6)

如果添加依赖项没有问题,那么您可以添加moment.js,它将帮助您格式化任何格式的数据 我假设来自服务器的日期采用这种格式'/Date(725828400000)/'

var d = item.EMP_DOB;
result.push(moment(Number(d.match(/\d+/)[0])).format('MM/DD/YYYY'));

如果你无法添加时刻js那么你可以像

这样做
var date = new Date(Number(d.match(/\d+/)[0]));
var day = date.getDate();
day = day = (day < 10) ? ("0" + day) : day;
var month = date.getMonth() + 1);
month = (month < 10) ? ("0" + month) : month;
var dateStr = day + "-" + month + "-" + date.getFullYear();
result.push(dateStr);

答案 1 :(得分:0)

最简单的方法是在下面(不需要第三方js)

var data =from row in db.Employees.ToList()
 select new {
    EMP_DOB=row.EMP_DOB.ToString(), row.EMP_FNAME,row.EMP_MNAME,row.EMP_LNAME
     row.EMP_EMAIL,row.EMP_DOB,row.EMP_USERNAME,row.EMP_PASSWORD,row.ID
 };

如果您想格式化可以使用的日期

var data =from row in db.Employees.ToList()
     select new {
         EMP_DOB=Convert.ToString(row.EMP_DOB).ToShortDateString(), other properties goes here as shown previously
     };

您可以使用C#

将其格式化

答案 2 :(得分:0)

您已经有了一个数据对象,它有自己提取所需内容的方法。

您可以创建一个类似于此示例的函数:

Get string in yyyymmdd format from js date object

答案 3 :(得分:0)

此方法会将您的所有WCF类型日期转换为javascript日期对象:

var dateRegex = /^\/Date\((d|-|.*)\)[\/|\\]$/;

function convertWCFStringDate(strDate) {
    var matched = dateRegex.exec(strDate);
    if (matched) {
        var parts = matched[1].split(/[-+,.]/);
        return new Date(parts[0] ? +parts[0] : 0 - +parts[1]);
    }
}

答案 4 :(得分:-1)

var dbDate = "2014/03/12";    
var date    = new Date(dbDate); 

//代替硬编码日期放置你的字符串

  

对于你的情况,你从Db获得一个长值作为字符串。加   还有一行

 var newDate = parseInt("725828400000"); // use here your item.EMP_DOB;
  

现在将此值传递给您的对象。喜欢

var date = new Date(newDate);


var mm = (date.getMonth()+1)>9?(date.getMonth()+1):"0"+(date.getMonth()+1);
var dd = date.getDate()>9?date.getDate():"0"+date.getDate();
var yyyy = date.getFullYear();
var newDate = mm+"/"+"/"+dd+"/"+yyyy;
alert(dbDate+" converted to "+newDate)