使用Moment.js

时间:2016-01-21 13:48:41

标签: javascript momentjs

如何使用http://momentjs.com/docs/仅显示午夜时间?例如,请看下面的第一个例子。

console.log(moment('2016-01-28 00:00:00').format('MM/DD/YYYY h:mm:ss A'));
// Desire 01/28/2016, Get 01/28/2016 12:00:00 AM

console.log(moment('2016-01-28 05:03:50').format('MM/DD/YYYY h:mm:ss A'));
// Works correctly.  Desire 01/28/2016 5:03:50 AM, Get 01/28/2016 5:03:50 AM

一种可能的非优雅解决方案是使用JavaScript来检查日期时间是否为00:00:00,如果是,则提供格式字符串' MM / DD / YYYY'而不是&#;; MM / DD / YYYY h:mm:ss A',但我希望有更合适的方法。

2 个答案:

答案 0 :(得分:0)

有很多方法。这是一种方式(对于大多数用途来说足够简洁):

var dt = moment('2016-01-28 00:00:00');
console.log(dt.hours() === 0 && dt.minutes() === 0 && dt.seconds()=== 0 ? dt.format('MM/DD/YYYY'): 
       dt.format('MM/DD/YYYY h:mm:ss A'));

答案 1 :(得分:0)

如果要考虑毫秒,则可以使用isSame()startOf()

const dt = moment('2020-10-31 00:00:00');
console.log(dt.format('MM/DD/YYYY' + (dt.isSame(moment(dt).startOf('date')) ? '' : ' h:mm:ss A')));