我使用以下代码将字符串转换为日期。
我将此“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;
}
答案 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));