【发布时间】:2014-06-25 17:38:26
【问题描述】:
示例字符串:2014-12-31 11:59 pm
就目前而言,JavaScript 甚至没有解析时间,因为无论我提供什么时间,结果时间代码都会返回上午 12:00。
new Date("2014-12-31 11:59 pm") 之后的输出结果为:2014-12-31 12:00 am
编辑:
即使在预期格式并手动解析字符串之后,new Date() 构造函数也没有表现...
var sourceTime = "2014-12-31 11:59 pm";
var dateRaw = sourceTime.split(' ');
var dateYMD = dateRaw[0].split('-');
var dateTime = dateRaw[1].split(':');
var dateAmPm = dateRaw[2].toLowerCase();
// Adjust human month to system month...
dateYMD[1] = (parseInt(dateYMD[1]) - 1).toString();
// Convert 12h to 24h...
if(dateAmPm == 'pm') {
if(parseInt(dateTime[0]) < 12) dateTime[0] = (parseInt(dateTime[0])+12).toString();
} else {
if(parseInt(dateTime[0]) == 12) dateTime[0] = 0;
}
console.log(dateYMD);
console.log(dateTime);
var dateParsed = new Date(dateYMD[0], dateYMD[1], dateYMD[2], dateTime[0], dateTime[1]);
控制台日志显示正确的值被传递到new Date(),但我仍然得到不正确的输出:(
【问题讨论】:
-
new Date()应该是当前时间,你的时钟好像有问题 -
@Rialgar 对不起,我做了更新澄清。我将示例字符串输入
new Date()。
标签: javascript string date datetime time