new Date时区相差八个小时处理方案

根据 ECMA-262 ed 3,对时间的解析可能有不同处理方式。

在 ES5 中,对 ISO 8601 格式的字符串,如果没有指定时区,则解析为 UTC,对非 ISO 8601 的处理没有统一行为。

在 ES2015 中,对没有指定时区的字符串解析为当地时间(根据系统时间)。

如果你希望把所有这种形式的字符串都处理为当地时间,可以自己写个函数:

function parseISOLocal (s) {

var b = s.split(/\D/);

return new Date(b[0], b[1]-1, b[2]);

}

 

 

export const parseISOLocal = (s:any) => {
  const date = new Date(s);
  if(date.getHours()>0){
    date.setHours(date.getHours() + date.getTimezoneOffset() / 60);
  }
  let str = new Date(date).getTime();
  console.log(str,new Date(str),s,date);
  return str;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值