Javascript 日期字符串 returns 无效日期

Javascript Date String returns invalid Date

我正在尝试将日期字符串转换为 javascript 内的日期对象。我的日期格式如下:

"13.02.2015 12:55"

我目前的做法是:

var d = new Date("13.02.2015 12:55");

但这没有用,而且总是 returns 无效日期。如果我将日期输入为“12.02.2015 12:55”,它在 chrome 中有效,但在 Firefox 中无效。 我猜这是因为他认为第一部分是月份,但在德国并不是这样。

我怎样才能让它工作?

尝试 ISO 8601 格式, 或者更好的是,阅读这个 http://www.ecma-international.org/ecma-262/5.1/#sec-15.9

编辑:如果你别无选择,只能以那种格式获取它,我想你需要这样的东西:

function DDMMYYYY_HHMMtoYYYYMMDD_HHMM($DDMMYYYY_HHMM) {
  var $ret = '';
  var $foo = $DDMMYYYY_HHMM.split('.');
  var $DD = $foo[0];
  var $MM = $foo[1];
  var $YYYY = $foo[2].split(' ') [0].trim();
  var $HH = $foo[2].split(' ') [1].split(':') [0].trim();
  var $MMM = $foo[2].split(' ') [1].split(':') [1].trim();
  return $YYYY + '-' + $MM + '-' + $DD + ' ' + $HH + ':' + $MMM;
}
var d=new Date(DDMMYYYY_HHMMtoYYYYMMDD_HHMM('13.02.2015 12:55'));

使用moment.js:

var date = moment("13.02.2015 12:55", "DD.MM.YYYY HH.mm").toDate();

2022-05-28 更新:

同时 moment.js 的项目状态发生了变化。因此我强烈建议阅读 https://momentjs.com/docs/#/-project-status/ and observe the recommendations.