解析日期返回null

时间:2015-11-11 18:28:27

标签: javascript date time timezone momentjs

我正在尝试解析约会,尤其是:

  

Mer 2015年11月11日00:00:00

进入这个:

  

Mer 2015年11月11日09:00:00

所以我已经制作了这段代码:

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

问题在于此代码返回null值。

更多细节可变化的价值

workingPlan[selDayName].start => 09:00

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

1 个答案:

答案 0 :(得分:1)

这有点笨拙,但如果您想使用纯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可以为将来的API添加更明智的功能。