var start = new Date("2017-04-09T21:00:00");
输出:Mon Apr 10 2017 05:00:00 GMT + 0800(+08)
它假设是:Sun Apr 09 2017 21:00:00 GMT + 0800(+08)
答案 0 :(得分:1)
这很容易。你可以试试这个:
max(id)
答案 1 :(得分:1)
有一条黄金法则,你永远不应该用Date构造函数解析字符串(或Date.parse,它们等同于解析)。
根据ECMA-262,没有时区的ISO 8601格式日期应视为本地日期:
如果不存在时区偏移,则解释仅限日期的表单 因为UTC时间和日期时间表格被解释为当地时间。
所以new Date("2017-04-09T21:00:00")
应该在2017年4月9日下午9:00返回主持人时区的日期。
但是,Safari 10和Chrome 57中的测试显示" 2017-04-09T21:00:00"被视为Z或GMT + 0000。 Firefox 49奇怪地将其视为UTC然后以错误的方式调整本地时区。但是,Firefox 38正确地将其视为本地。
所以总是手动解析字符串。使用库或编写一个简短的函数,例如
// Parse 2017-04-09T11:00:00.000 as local
function parseISOLocal(s) {
var b = s.split(/\D/);
return new Date(b[0], b[1]-1, b[2], (b[3]||0),
(b[4]||0), (b[5]||0), (b[6]||0));
}
var s = '2017-04-09T21:00:00.000';
console.log('Built-in parser: ' + new Date(s).toString());
console.log('parseISOLocal : ' + parseISOLocal(s).toString());