在Jquery中更改JSON日期格式

时间:2015-08-29 14:27:39

标签: jquery json date

我使用以下json代码将jquery数组中的值分配给表单:

$.getJSON('/mysite',function(result){
    $('.forminput').each(function(){
        $(this).val(result[this.id]);
    });
};

数组看起来像这样,并且生日为#{1}}生日':

date

我想将日期转换为{name: 'John', address: 'here', birthday: ISODate("1974-10-27T16:00:00Z")} 格式(否则显示为:' 2010-10-27T16:00:00.000Z')。我的问题是,在分配之前,我可以向客户端插入什么代码来转换mm/dd/yyyy值,例如:

date

感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

使用以下命令在iso日期字符串上创建一个新的Date对象:

var dateString = "2010-10-27T16:00:00.000Z";
var d = new Date(dateString);

然后,您可以访问日期对象的各种方法,并构造您需要的字符串。 e.g。

var result = (d.getMonth() +1) + '/' + d.getDate() + '/' + d.getFullYear();

产生结果" 10/27/2010"。

您需要循环处理您的响应并将上述代码应用于每个iso日期值。

答案 1 :(得分:1)

在他的原始版本的JSON类的某个地方,主人自己,  道格拉斯·克罗克福德(Douglas Crockford)提供了一种“复兴" JSON对象中的日期对象,请参阅here

reviver

函数JSON.parse()可以作为Date.prototype.fmtUS=function(){ var dd=function(i){return (i<10?'0':'')+i;}; return dd(this.getMonth()+1)+'/'+dd(this.getDate())+'/'+this.getFullYear();}; new Date().fmtUS() // "08/29/2015" 函数的第二个参数插入,只有在识别出ISO日期字符串时才会执行。

要将具有指定格式的日期对象插入表单,您可以使用以下内容:

fmtUS()

如果您想更进一步,还可以通过

with(Date.prototype)toString=fmtUS; new Date(); // "08/29/2015" 作为标准日期格式
Private Sub Worksheet_Change(ByVal Target As Range)
 'write your code here (Target is the cell)
End Sub

答案 2 :(得分:0)

这就是我最终做的事情:

$.getJSON('/mysite',function(result){
    $('.forminput').each(function(){
        if (this.id==='birthday'){
            console.log('result[this.id]: '+result[this.id]);
            var bday=convertdate(result[this.id]);
            console.log(bday);
            $(this).val(bday);
        }
        else{
            $(this).val(result[this.id]);// assigns each key value to each element id.
        }

和convertdate函数:

function convertdate(dtvalue){
        console.log('converting date')
        var datestring = new Date(dtvalue);
        var d=new Date(datestring);
        return result = (d.getMonth() +1) + '/' + d.getDate() + '/' + d.getFullYear();
}