[英]How to convert UNIX timestamp into relative date like whatsapp last seen status with moment.JS
我想将 UNIX 时间戳显示为最后一次看到的状态,就像 WhatsApp 在 javascript 中所做的一样。我正在使用moment.js
,据我所知,我们可以格式化日期或可以使用.fromNow()
给出相对日期但不是我要找的。
例如,设 Unix 时间戳:1606908420
如果我使用moment.unix(1606908420).formNow()
结果将是few seconds ago
或类似的东西
但我要找的是,它应该显示Today 11:30 am
。
同样地
For a date of yesterday, it should show: Yesterday 11:30 am
For a date of day before yesterday, it should show: Mon 11:30 am
Any date of last week or earlier, it should show 25-11-2020
任何人都可以帮助我如何实现这一目标?
使用toDate()方法
{new Date(timestamp?.toDate()).toUTCString()}
Wed, 2 Dec 2020 12:00:00 GMT
使用力矩法
{moment.unix(order.data.created).format("MMMM Do YYYY, h:mma")}
我强烈推荐给你第二个时刻。 从moment 文档中了解更多
将时刻日期转换为看起来像在 Whatsapp 中
//utility function to convert your date to looks like in whatsapp
const dateFormatter = (date) => {
//here we were subtracting our date from current time which will be in milliseconds
const dateDifferenceInTime =
new Date().getTime() - new Date(date.toDate()).getTime();
// conerting milli seconds to days
// (1000 milliseconds * (60 seconds * 60 minutes) * 24 hours)
const dateDifferenceInDays =
dateDifferenceInTime / (1000 * 60 * 60 * 24);
//After returning in particular formats as of our convinent
if (dateDifferenceInDays < 1) {
return moment(date.toDate()).format("LT");// 10:04 am
} else if (dateDifferenceInDays < 2) {
return "Yesterday"; // just YesterDay
} else if (dateDifferenceInDays <= 7) {
return moment(date.toDate()).format("dddd");//like monday , tuesday , wednesday ....
} else {
return moment(date.toDate()).format("l");// if it was more than a week before it will returns as like 05/23/2022
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.