解析日期 return null

Parse a date return null

我正在尝试解析一个日期,尤其是这个:

Mer Nov 11 2015 00:00:00

进入这个:

Mer Nov 11 2015 09:00:00

所以我编写了这段代码:

var workDateStart = Date.parseExact(calendarDateStart.toString('dd/MM/yyyy') + ' '+ workingPlan[selDayName].start,'dd/MM/yyyy HH:mm');

问题在于此代码 return 一个 null 值。

更多细节变量增值

workingPlan[selDayName].start => 09:00

calendarDateStart => Mer Nov 11 2015 00:00:00
  1. workingPlan 变量包含我的所有工作计划天数 提供者,我通过传递获得特定日期(工作开始) selDayName 作为索引。
  2. calendarDateStart 包含日历的实际日期。

这有点笨拙,但如果您想使用纯 JavaScript(无库)执行此操作,则以下内容应该有效。

var workDateStart = new Date(calendarDateStart.toDateString() + ' ' + workingPlan[selDayName].start);

这假设 calendarDateStartworkDateStart 都是 Date 对象(不是字符串),并且 workingPlan[selDayName].start 确实是您提供的格式的字符串。

作为一个孤立的例子:

var d = new Date();                            // some date object
var timeString = '09:00';                      // some time-only string
var s = d.toDateString() + ' ' + timeString;   // combined
var result = new Date(s);                      // parsed back to a Date object

如果你想用moment.js来做到这一点,就像这样:

var m = moment();                              // some moment object
var timeString = '09:00';                      // some time-only string
var s = m.format('YYYY-MM-DD') + ' ' + timeString;   // combined
var result = moment(s, 'YYYY-MM-DD HH:mm');    // parsed back to a moment object 

有一个open issue可以为moment的API增加一个更明智的功能。