我正在尝试确定是否使用时间值(除日期之外)实例化了一个时刻对象.例如:
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它是否包含时间(而不仅仅是默认值)?
从技术上讲,只传递日期的构造函数使用时间12:00:00对其进行实例化,即使它是隐式的.即便如此,这里有一些可能的解决方案.
从最不安全和最少的工作到最安全和最安全的工作:
1)检查它是否完全等于12:00:00并假设它没有设置.如果您的用例经常在午夜左右发生事情,那么这种方法很糟糕.
2)在没有明确指定时间的情况下,不要实例化片刻.
3)自定义对象中的包裹时刻,或创建一个全新的自定义对象,能够表示空时间情况(标志,可空变量等)