繁体   English   中英

与原始值的日期比较。 什么时候比原始大?

[英]Date comparison with primitive value. When it is bigger than primitive?

new Date('Sep 23, 2019') > 0     ----> true
new Date('Sep 23, 2019') > 's'   ----> false

与原始比较的日期何时大于或小于原始?

前任我需要将任何日期与低于日期的原语进行比较。

DateNumber进行比较时,使用<<=>>=运算符之一, Date被转换为毫秒(就像在其上调用.getTime()一样)。

Date与像"1569177000000"这样的String进行比较时,字符串也会转换为数字。

Date与不能转换为数字"s"类的String进行比较时,没有排序:您将始终得到false (与NaN的任何比较都是错误的)。

MDN

对于关系抽象比较(例如,<=),操作数首先转换为基元,然后转换为相同类型,然后再进行比较。

具体来说,对于> ,请参见规范中的此处,其中LeftFirstfalse

这很复杂,但是如果双方都还没有转换为原始数据(最好是数字),则它们会被转换为原始数据(最好是数字)。 当使用日期完成此操作时,它会返回日期的 Unix 时间戳。

因为两边都是数字,所以之后就很简单了——解释器只检查哪个数字更大。

您可以在日期使用 function 的值

 // Convert date into primitive
 new Date('Sep 23, 2019').valueOf() //1569177000000

您可以使用getTime()date functions将日期转换为原始值,然后使用比较运算符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM