2016-01-21 89 views
-3

如何使用http://momentjs.com/docs/仅在不是午夜时才显示时间?例如,请看下面的第一个例子。如果午夜使用Moment.js,则不显示时间

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',但我希望有一个更合适的方法来做到这一点。

+0

VAR时间=时刻()格式( “HMS”)= “000”? ()格式(“你想要什么格式”):“” – Vanojx1

+0

@ Vanojx1请看我编辑过的帖子。看起来我应该使用你的'moment()。format(“Hms”)==“000”'的建议,然后使用不同的格式。对?谢谢 – user1032531

+0

“你想要什么格式”意味着你需要的最终格式 – Vanojx1

回答

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')); 
+0

只需使用'function myMoment(t){return t?(t.substring(11)=='00:00:00'?矩形(t).format('MM/DD/YYYY'):矩形(t).format('MM/DD/YYYY h:mm:ss A')):'';}'。不知道是否有某种支持选项的时刻。谢谢 – user1032531

+0

如果输入的字符串是'2016-01-28',那么我推荐的方法是可行的,所以它不像您的那样'脆弱'。 –

+0

谢谢。我同意,这就是为什么我选择你的解决方案作为正确的答案。 – user1032531