Javascript中日期计算中的问题

时间:2011-06-16 21:21:15

标签: javascript date

我使用以下代码将字符串转换为日期。

我将此“2010-06-23 00:00:00.0”作为该功能的输入传递。 2010年7月21日至2010年6月21日,我不再将2010年6月21日作为日期返回。可能是什么问题?

function getDateFromString(string){
var month = string.substring(5,7);
var day = string.substring(8,10);
var year = string.substring(0,4);
var dateValue = new Date(year,month,day);
dateFormat(dateValue, "yyyy-mm-dd");
return date;
} 

4 个答案:

答案 0 :(得分:3)

月份从零开始,而不是一个。换句话说,“6”是7月,而不是6月。

(我的意思是,就JavaScript“Date”类而言,它们的编号是这样的。)

答案 1 :(得分:1)

月份必须是实际月份-1。例如,您可以在“示例:指定日期的几种方法”部分的Date - MDC Docs中找到一些示例。

编辑:在Bernhard Hofmann的建议之后更改了MDC文档的链接。

答案 2 :(得分:1)

month对象构造函数的Date()参数从零开始。

var dateValue = new Date(year, month - 1, day);

答案 3 :(得分:0)

您正在使用子字符串,它将转换为作为参数。所以基本上你总是得到3个子字符串的字符。 (年甚至5个字符)

var month = parseInt(string.substr(5,2));
var day = parseInt(string.substr(8,2));
var year = parseInt(string.substr(0,4));