Javascript 检查 unix 时间戳是否 > 24 小时后?

Javascript check if unix timestamp > 24hours from now?

是否有任何简单的方法来检查 unix 时间戳(例如:1442957750)是否是距现在 > 24 小时的时间?我在从 linux 时间戳转换为 JS 可以处理的内容时遇到问题

谢谢!

Unix风格的时间戳可以在JavaScript中使用,但需要乘以1000将其从秒转换为毫秒。

new Date(1442957750000) // Tue Sep 22 2015 16:35:50 GMT-0500 (Central Daylight Time)

24 小时等于 86,400,000 毫秒。你可以从那里做数学。记住夏令时等等。并非所有的日子都是平等的。

(new Date(new Date() + (1000 * 60 * 60 * 24)) - new Date(1442957750 * 1000)) < 0

unix_timestamp > (Date.now() + 24*60*60*1000)/1000

必须将js时间戳从毫秒转换为秒。

要处理诸如夏令时之类的事情,您可以使用 JavaScript 日期 API 将日期设置为比当前时间早一天:

var oneDayFromNow = new Date();
oneDayFromNow.setDate(oneDayFromNow.getDate() + 1);

然后你可以从 Linux 时间戳值创建一个 Date 实例并检查哪个更大:

var linuxDate = new Date(linuxTimestamp * 1000);
if (linuxDate >= oneDayFromNow) {
  // linux date is a day or more in the future
}

通过让 JavaScript 运行时将日期提前一天,您可以让它使用了解当地夏令时等的内置代码。

我认为它解决了你的问题,只需将两个时间都转换为 JS。

function convertUnixDate(date, multiplier = 1000){
 let isSecond = !(date > (Date.now() + 24 * 60 * 60 * 1000) / 1000)

 return date
  ? isSecond
   ? new Date(date * multiplier)
   : new Date(date)
  : null
};

console.log(convertUnixDate(1522355774))
console.log(convertUnixDate(1522355774000))
console.log(convertUnixDate(null)) // Return the now() is an improvement.

[]的