JS设置日期:今天、昨天、前天、今年、去年

文章展示了如何使用JavaScript处理一个包含日期的数组,根据当前时间将日期字段映射为‘今天’、‘昨天’、‘前天’、‘今年’及‘去年’的特定格式。主要涉及到Date对象的方法以及时间戳的转换操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先创建一个数组:

[        

   {id: 1, createDate: '2023-06-05 17:02:45'},

   {id: 2, createDate: '2023-06-04 17:02:45'},

   {id: 3, createDate: '2023-06-04 17:02:45'},

   {id: 4, createDate: '2023-01-01 17:02:45'},

   {id: 4, createDate: '2022-09-09 17:02:45'}

]

要求:今天(17:02),昨天(昨天),前天(前天),今年(01-01),去年(2022-09-09)

data.map(items => {
   let dataTime = Date.parse(new Date(items.createDate)) // 现在时间
   let todayTime = new Date(new Date().setHours(0,0,0,0)).getTime();// 当天0点
   let differTime = todayTime - dataTime

   if ( new Date(dataTime).getDate() === new Date().getDate() && new Date(dataTime).getMonth() === (new Date().getMonth()) && new Date(dataTime).getFullYear() === (new Date().getFullYear()) ) {
      items.createDate = items.createDate.slice(11, 16)
   } else if ( differTime >=0 && differTime < 86400000 && new Date(dataTime).getFullYear() === (new Date().getFullYear()) ) {
      items.createDate = "昨天"
   } else if ( differTime >=86400000 && differTime < 172800000 && new Date(dataTime).getFullYear() === (new Date().getFullYear()) ){
      items.createDate = "前天"
   } else if (new Date(dataTime).getFullYear() === (new Date().getFullYear())) {
      items.createDate = items.createDate.slice(5, 10)
   } else if (new Date(dataTime).getFullYear() !== (new Date().getFullYear())) {
      items.createDate = items.createDate.slice(0, 10)
   }
})

补充:时间戳转换

const a = new Date()
//Mon Jun 05 2023 15:47:37 GMT+0800 (中国标准时间)

//中国标准时间转为时间戳
const b = Date.parse(new Date())

//时间戳转化为中国标准时间
const c = new Date(b)

//时间戳转换为 yyyy-mm-dd或yyyy-MM-dd HH-mm-ss
function timestampToTime(timestamp) {
   var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
   var Y = date.getFullYear() + '-';
   var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1):date.getMonth()+1) + '-';
   var D = (date.getDate()< 10 ? '0'+date.getDate():date.getDate())+ ' ';
   var h = (date.getHours() < 10 ? '0'+date.getHours():date.getHours())+ ':';
   var m = (date.getMinutes() < 10 ? '0'+date.getMinutes():date.getMinutes()) + ':';
   var s = date.getSeconds() < 10 ? '0'+date.getSeconds():date.getSeconds();
   return Y+M+D+h+m+s;
}

//yyyy-mm-dd或yyyy-MM-dd HH-mm-ss 转为时间戳
var Time = '2023-06-05 17:02:45';
var timestamp = Date.parse(new Date(Time));

//中国标准时间转为 yyyy-mm-dd hh-mm-ss
let y = date.getFullYear()
let m = date.getMonth() + 1
m = m < 10 ? ('0' + m) : m
let d = date.getDate()
d = d < 10 ? ('0' + d) : d
let h =date.getHours()
h = h < 10 ? ('0' + h) : h
let M =date.getMinutes()
M = M < 10 ? ('0' + M) : M
let s =date.getSeconds()
s = s < 10 ? ('0' + s) : s
return y + '-' + m + '-' + d + ' ' + h + ':' + M + ':' + s;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值