我有一个日期格式
03.03.2016 20:01
我有一个代码
aData._date = new Date(aData[3]).getTime();
错误是日期无效但是,在不同的计算机上它运行良好但现在它无法正常工作。问题是什么?
提前致谢
答案 0 :(得分:0)
您可以先将日期字符串解析为ISO8601格式。
$sql="DELETE FROM expense, invoice, cat, conf, patient, prv, test_invoice, test_style";
将日期字符串传递给'03.03.2016 20:01' to '2016-03-03T20:01:00'
构造函数时,它会调用Date.parse个方法。它只接受ISO8601的版本。但不知何故,chrome具有扩展功能,可以将类似日期的字符串解析为Date
方法。
如果您不想使用外部库,这是实现您想要的一种方式。
Date.parse
答案 1 :(得分:0)
有什么问题?
使用Date构造函数解析字符串(或Date.parse,它们等同于解析)在很大程度上取决于实现,不建议使用。手动解析字符串,如果只需要处理单个格式,则使用小函数,或使用库(有许多好的可供选择)并提供其他格式。
ECMAScript 2015指定 Date.parse 正确解析ISO 8601扩展格式日期,但任何其他格式都取决于实现。许多正在使用的浏览器都没有正确地(即根据规范)解析ISO 8601格式的日期。
" 03.03.2016 20:01"不是ISO 8601日期格式。假设它是DD.MM.YYYY hh:mm它可以使用以下方式解析为本地日期和时间:
function parseDMYHM(s){
var b = ('' || s).split(/\D/);
return new Date(b[2], b[1]-1, b[0], b[3], b[4]);
}
document.write(parseDMYHM('03.03.2016 20:01'));

或者如果你有一个带有 parse 函数的库,它接受一种要解析的格式(就像这样的库会有任何好处),使用类似的东西:
var d = parse('03.03.2016 20:01', 'DD.MM.YYYY hh:mm');