2017-01-31 57 views
0
moment("17-Jan-2017 12:00 pm", "DD-MMM-YYYY hh:mm a") 

使用moment.js,我无法计算如何使用预定义时间创建当前日期。我认为这可能工作:Moment.js - 使用预定义时间获取当前日期

moment(moment(new Date()).format("DD/MM/YYYY") + " 12:00 pm", "DD-MMM-YYYY hh:mm a"); 

但它不 - 我如何建立日期时间?

回答

1

您可以使用set function这样设置:

moment().set({ hour: 12, minute: 0, second: 0, millisecond: 0 }); 

,然后格式化,使用format function

moment().set({ hour: 12, minute: 0, second: 0, millisecond: 0 }) 
     .format("DD/MM/YYYY hh:mm:ss"); 

更新 - 现在还包括second的设置与millisecond以防止从当前日期/时间获取这些内容。 @MattJohnsons答案更好的方法是使用parsing

+1

这种类型的工作,但它有副作用秒和更低基于当前时间设置,而不是零。更好的是从好的数据开始,而不是从其他地方开始并进行调整。但是,谢谢。 –

+0

@MattJohnson是的,好呼喊。我确实认为,在发布时,但在原始问题的背景下思考,它有点不相关,所以试图保持简短和甜蜜。你是对的,但将一切都重置为零当然是一种更好的做法。相应地更新了答案。 –

2

首选的方法是设置初始施工期间的时间。您可以使用:

moment("12:00", "HH:mm") 

moment({ hour: 12, minute: 0}) 

日期部分将被解析为当前日期,以及任何秒或更低的将被设置为零。

+0

我在活动信息中看到了这个...我就是这样,我没有回答! –

+0

@MatthewJohnson - 这是个好名字。很高兴认识你! –

+0

这当然是更好的方法,应该是答案。我学到了一些新东西。感谢您的反馈。 –

相关问题