javascript js unix timestamp -将分钟、秒、毫秒设置为零,以得到小时的时间戳

cetgtptt  于 2023-02-02  发布在  Java
关注(0)|答案(2)|浏览(292)

给定UNIX时间戳,例如1424321864000(2015年2月19日星期四04:57:44 GMT+0000),我希望将其转换为1424318400000(2015年2月19日星期四04:00:00 GMT+0000)。
换句话说,我想保持时间戳完全一样,只是从它删除分钟,秒,毫秒。无论时间戳是输入将返回相同的时间戳,正好是该天/时间'在其小时'。

7vhp5slm

7vhp5slm1#

我认为有两种方法可以做到这一点,像Luxon这样的库可以用一种相当直接的方法来处理这个问题:

const topOfHour = DateTime.fromMillis(initialTimestamp).startOf('hour');

如果需要,还有一个匹配的endOf函数。
pure-javascript方法也可以工作,但是有点混乱:

const initialDate = new Date(initialTimestamp);
const zeroMilliseconds = new Date(initialDate.setMilliseconds(0));
const zeroSeconds = new Date(zeroMilliseconds.setSeconds(0));
const startOfHour = new Date(zeroSeconds.setMinutes(0));

我想用一些我在检查文档时遗漏的稍微更冗长的代码来确认user 756659的注解。

const initialDate = new Date(initialTimestamp);
const startOfHour = new Date(initialDate.setMinutes(0, 0, 0))

它可以缩减为一行代码,但为了可读性,我在这里将它保持得比较详细。

9gm1akwq

9gm1akwq2#

您可以使用一些JavaScript Date示例方法来执行此操作,例如setSecondssetMinutes

const newDate = new Date(1424321864000);
console.log(newDate.getTime());
newDate.setMilliseconds(0);
newDate.setSeconds(0);
newDate.setMinutes(0);
console.log(newDate.getTime());

相关问题