Javascript中的日期计算出现问题

Problem in Date calculation in Javascript

本文关键字:问题 计算 日期 Javascript      更新时间:2023-09-26

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

我将这个"2010-06-23 00:00:00.0"作为函数的输入。日期不是返回2010年6月21日,而是返回我2010年7月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;
} 

月份是从零开始编号的,而不是一。换句话说,"6"是七月,而不是六月。

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

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

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

月份必须是实际的月份-1。例如,您可以在Date-MDC文档中的"示例:分配日期的几种方法"部分找到一些示例。

编辑:根据Bernhard Hofmann的建议,更改了MDC文档的链接。

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

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