嘿伙计们我正在从输入框中检索一个值并使用该值转换为Date
JavaScript
,格式为Y-m-d h:i:s
。它在Chrome中运行良好,但任何其他浏览器都显示invalid Date
var old = $(".checked-in-time").val();
old = new Date(old);
更新:
这是我正在做的事情:
var current = new Date();
var old = $(".checked-in-time").val();
old = Date.parse(old , 'Y-m-d H:i:s');
var newEnd = current - old
minutes = parseInt((newEnd/(1000*60))%60);
var subtractedWaitTime = minutes;
几乎可以根据分钟获得时差。
答案 0 :(得分:1)
您可以像这样解析日期,
var old = $(".checked-in-time").val();
old = Date.parseDate(old , 'yyyy-mm-dd h:i:s');
如果以上不起作用,您也可以尝试Y-m-d H:i:s
这种格式。对我来说Y/m/d H:i
工作得很好。
答案 1 :(得分:1)
请尝试以下格式之一
可能有些浏览器不支持yyyy-mm-dd
答案 2 :(得分:1)
您可以尝试使用此类格式Y-m-dTH:i:s
,例如2011-01-01T12:00:00
或者您可以使用moment库(Javascript日期库)
答案 3 :(得分:1)
Date.parse接受有限数量的格式:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse
您的格式不是支持的格式之一。您可以自己解析它,直接传递参数。 Date接受的形式之一就是这个,这很容易从你的格式中提取出来:
new Date(year, month[, date[, hour[, minutes[, seconds[, milliseconds]]]]]);
但我建议消除不必担心跨浏览器兼容性并自行解析问题的痛苦,而是使用moment代替,在这里你可以像这样解析日期
moment(dateStr,'YYYY-M-D H:m:s')
然后如果你需要将它作为Javascript Date对象,你可以运行
moment().toDate();
在更可能的情况下,您只需要在某处显示格式,或将其与其他日期进行比较,时刻提供了许多格式化,操作和比较日期的功能