将字符串转换为日期 - JavaScript

时间:2015-01-20 04:57:02

标签: javascript jquery

嘿伙计们我正在从输入框中检索一个值并使用该值转换为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;

几乎可以根据分钟获得时差。

4 个答案:

答案 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)

请尝试以下格式之一

  • MM-dd-yyyy
  • yyyy / MM / dd
  • MM / dd / yyyy
  • MMMM dd,yyyy
  • MMM dd,yyyy

可能有些浏览器不支持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();

在更可能的情况下,您只需要在某处显示格式,或将其与其他日期进行比较,时刻提供了许多格式化,操作和比较日期的功能

http://momentjs.com/docs/#/displaying/as-javascript-date/