更改日期格式

时间:2014-06-03 08:55:07

标签: javascript date

我正在使用谷歌注释时间表图表绘制图表 https://code.google.com/apis/ajax/playground/?type=visualization#annotated_time_line

我通过json格式的ajax调用在像这样的数组中获取我的数据

d[1][0] = 9/30/04, d[2][0] = 12/31/04 

我必须遍历这些值才能添加到数据行

for (m = 1; m < datavalues.length; m++) {
    data.addRows('DATE', parseFloat(datavalues[m][2]), parseFloat(datavalues[m][3]), parseFloat(datavalues[m][4]), parseFloat(datavalues[m][5])]);
}

但是代码接受像

这样的格式
[new Date(2008, 1 ,1), 30000, null, null, 40645, null, null]

那么如何改变格式?

1 个答案:

答案 0 :(得分:0)

如果您从9/30/04格式的日期开始,这似乎与mm/dd/yy类似,那么您只需要将这些值与split函数分开

var inputDate = '9/30/04',
    splitDate = inputDate.split('/'); // => ["9", "30", "04"]

之后,您需要准备年,月,日数字

var inputDate = '9/30/04',
    splitDate = inputDate.split('/'),
    year = parseInt(splitDate[2]) + (parseInt(splitDate[2]) < 50 ? 2000 : 1900), // careful with this, I don't know what years you are dealing with
    month = parseInt(splitDate[0]),
    day = parseInt(splitDate[1]);

并将它们用作参数来创建新的Date对象

var inputDate = '9/30/04',
    splitDate = inputDate.split('/'),
    year = parseInt(splitDate[2]) + (parseInt(splitDate[2]) < 50 ? 2000 : 1900),
    month = parseInt(splitDate[0]),
    day = parseInt(splitDate[1]),
    date = new Date(year, month, day); // => Date {Sat Oct 30 2004 00:00:00 GMT+0300 (FLE Standard Time)}

您只需要确保该格式保持不变mm/dd/yy。我会做一些日期转换功能,它以特定格式输入日期并返回日期对象。

在图表选项中使用此日期对象。