Nodejs 时间如何比较?
Nodejs 时间如何比较?
var t1 = new Date(‘2017-01-01 23:23’),
t2 = new Date(‘2017-01-01 23:23’);
t1 == t2 // false
t1 === t2 //false
t1 > t2 // false
t1 < t2 //false
t1 >= t2 // true
t1 <= t2 //true
各位时间一般都怎么比较的,换成时间戳比的吗? 能直接用字符串形式的时间去比较吗?
时间戳…
时间肯定是用时间戳比较的,用 str 不科学。
2017-07-25T07:39:35.488928+00:00
2017-07-25T06:39:35.488928+08:00
你告诉我哪个早
不止 js 用时间戳比时间,计算时间,我想大部分语言都是把时间转成时间戳来计算的。
嗯
用毫秒比
我吐槽下,你拿 date 对象比较,能比较出什么呢 hhh 内存地址吗
对象的比较毫无意义
对比时间戳吧 可以试试 momentjs
在 t1 和 t2 前面加一个 + ,转化成时间戳再比较。
+t1 == +t2
别自己写重复代码,直接 moment 库
用 momentjs 处理时间比较好
帖子背景怎么弄的
momentjs
nodejs 节点专用主题
t1.valueOf() === t2.valueOf()
别听他们的,就这么比
t1 - t2 == 0
// true
var t1 = new Date(‘2017-01-01 23:24’);
var t2 = new Date(‘2017-01-01 23:23’);
t1 - t2 > 0
// true
t1.getTime() == t2.getTime()
支持 18 楼
但是格式不对
moment.js
一般没人会这么搞吧,都是一个时区来的啊。字符串直接就可以,但是对象不行。毫秒上上之选
在Node.js中,时间比较通常涉及日期和时间对象的操作。Node.js 提供了内置的 Date
对象,可以用于创建、操作和比较时间。以下是一些基本的方法来比较时间:
方法一:直接比较 Date
对象
JavaScript 的 Date
对象可以直接进行比较,因为它们是基于时间戳(自1970年1月1日以来的毫秒数)的。
const date1 = new Date('2023-10-01T00:00:00Z');
const date2 = new Date('2023-10-02T00:00:00Z');
if (date1 < date2) {
console.log('date1 is earlier than date2');
} else if (date1 > date2) {
console.log('date1 is later than date2');
} else {
console.log('date1 is the same as date2');
}
方法二:比较时间戳
你也可以通过比较 getTime()
方法返回的时间戳来进行时间比较。
const timestamp1 = new Date('2023-10-01T00:00:00Z').getTime();
const timestamp2 = new Date('2023-10-02T00:00:00Z').getTime();
if (timestamp1 < timestamp2) {
console.log('timestamp1 is earlier than timestamp2');
} else if (timestamp1 > timestamp2) {
console.log('timestamp1 is later than timestamp2');
} else {
console.log('timestamp1 is the same as timestamp2');
}
这两种方法都是有效的,可以根据你的具体需求选择合适的一种。