我正在使用 Javascript 日期,但我对尝试从字符串中获取日期感到有点困惑。
这是我的代码:
var formatDate = function(dateObj) {
// make sure date values are two digits and months start at 1
var adjMonth = dateObj.getMonth() + 1;
var adjDate = dateObj.getDate();
if (adjMonth < 10) adjMonth = '0' + adjMonth;
if (adjDate < 10) adjDate = '0' + adjDate;
// build and return dateStr
var dateStr = dateObj.getFullYear() + '-' + adjMonth + '-' + adjDate;
return dateStr;
};
$(document).ready(function() {
var testIn1 = "2012-02-01";
var testDate1 = new Date(testIn1);
var testDate1Str = formatDate(testDate1);
var testIn2 = "2012-01-31";
var testDate2 = new Date(testIn2);
var testDate2Str = formatDate(testDate2);
$('#output').html("---Input = '" + testIn1 + "':<br>" + testDate1 + "<br>" + testDate1Str + "<br>"
+"---Input = '" + testIn2 + "':<br>" + testDate2 + "<br>" + testDate2Str + "<br>");
});
我从中得到的结果是:
---Input = '2012-02-01':
Tue Jan 31 2012 18:00:00 GMT-0600 (CST)
2012-01-31
---Input = '2012-01-31':
Mon Jan 30 2012 18:00:00 GMT-0600 (CST)
2012-01-30
这对我来说毫无意义,为什么会有休息日?从 2012-02-01 获取 2012-01-31 似乎没有意义......我在这里错过了什么?
最佳答案
如果您没有指定时间,Date.parse
使用 00:00:00
GMT,那么它将是 18:00:您所在时区前一天的 00
(GMT-6)。如果您确实经过了明确的时间,则此行为将被抑制:
Date.parse(testIn1 + " 00:00:00");
关于Javascript 日期对象与每月第一天的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12752113/