Nodejs 时间如何比较?

发布于 1周前 作者 h691938207 来自 nodejs/Nestjs

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

各位时间一般都怎么比较的,换成时间戳比的吗? 能直接用字符串形式的时间去比较吗?


24 回复

用时间戳比啊。。

时间肯定是用时间戳比较的,用 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 处理时间比较好

帖子背景怎么弄的

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()

但是格式不对

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');
}

这两种方法都是有效的,可以根据你的具体需求选择合适的一种。

回到顶部