检查片刻是否包含时间?

Bil*_*lly 7 momentjs

我正在尝试确定是否使用时间值(除日期之外)实例化了一个时刻对象.例如:

var date = moment("2014-01-16");
date.format("h:mm a"); // 12:00 am
Run Code Online (Sandbox Code Playgroud)

var date2 = moment("2014-01-16 09:30");
date.format("h:mm a"); // 9:30 am
Run Code Online (Sandbox Code Playgroud)

如何询问date它是否包含时间(而不仅仅是默认值)?

Dan*_*ard 5

从技术上讲,只传递日期的构造函数使用时间12:00:00对其进行实例化,即使它是隐式的.即便如此,这里有一些可能的解决方案.

从最不安全和最少的工作到最安全和最安全的工作:

1)检查它是否完全等于12:00:00并假设它没有设置.如果您的用例经常在午夜左右发生事情,那么这种方法很糟糕.

2)在没有明确指定时间的情况下,不要实例化片刻.

3)自定义对象中的包裹时刻,或创建一个全新的自定义对象,能够表示空时间情况(标志,可空变量等​​)