js中获取本地时间,以及转换本地时间为零时区的方法记录

首先获取本地时间可以通过使用

let zeroTime:any = new Date()
//或者当前项目如果使用的ant design的日期组件的话,也就是有引入dayjs的话
//也可以用dayjs获取到:
const zeroTime:any = dayjs()
//若要传给后端的话或者后端返回过来的话,要做string处理,使得回显的值能正确绑定组件的话,记得要这么写

```javascript
dayjs(zeroTime, 'DD/MM/YYYY HH:mm:ss')

接下来,针对获取到的本地时间做0时区转换的处理的记录:

第一种,使用原生js的写法做处理

  let zeroTime:any = new Date()
  const day = String(zeroTime.getUTCDate()).padStart(2, '0'); // 获取日期,并在需要时补零
  const month = String(zeroTime.getUTCMonth() + 1).padStart(2, '0'); // 获取月份,并在需要时补零
  const year = zeroTime.getUTCFullYear(); // 获取年份
  const hours = String(zeroTime.getUTCHours()).padStart(2, '0'); // 获取小时,并在需要时补零
  const minutes = String(zeroTime.getUTCMinutes()).padStart(2, '0'); // 获取分钟,并在需要时补零
  const seconds = String(zeroTime.getUTCSeconds()).padStart(2, '0'); // 获取秒钟,并在需要时补零
  const formattedDate = `${day}/${month}/${year} ${hours}:${minutes}:${seconds}`;
  console.log(formattedDate);

第二种 使用moment提供的方法,首先确保你已经npm过moment组件并引入进来了。
使用 Moment.js 的 moment()方法将 date 转换为 Moment 对象。最后,使用 .format() 方法将 Moment 对象格式化为指定的格式,这里是’DD/MM/YYYY HH:mm:ss’

.utcOffset() 方法用于设置或获取当前 Moment 对象的时区偏移量。 时区偏移量是指当前 Moment 对象与 UTC(协调世界时)之间的时间差。正偏移表示当前 Moment 对象比 UTC 时间要晚,负偏移表示当前 Moment 对象比 UTC时间要早。

.utcOffset() 方法可以接受两种形式的参数: .utcOffset(offset:number):以分钟为单位设置时区偏移量。

正整数表示比 UTC 时间晚的偏移量,负整数表示比 UTC时间早的偏移量。
例如,.utcOffset(120) 表示当前 Moment 对象比 UTC 时间晚 2 小时。
.utcOffset(offset: string):以形如 “+HH:mm” 或 “-HH:mm"的字符串格式设置时区偏移量。
例如,.utcOffset(”+02:00") 表示当前 Moment 对象比 UTC 时间晚 2 小时。

如果不传递参数给 .utcOffset() 方法,则返回当前 Moment 对象的时区偏移量。
.utcOffset(0) 表示将当前
Moment 对象的时区偏移量设置为 0,即与 UTC 时间保持一致,也就是将时间转换为零时区的时间。

let zeroTime:any = new Date() 
moment(zeroTime).utcOffset(0).format('DD/MM/YYYY HH:mm:ss')

注意如果使用的是ant design的时间组件,那么v-model绑定的时间返回格式若要用moment插件转换时区,需要先对v-model绑定的值做格式处理。
例如

moment(effectiveTo.format('YYYY-MM-DD HH:mm:ss'),'YYYY-MM-DD HH:mm:ss').utcOffset(0).format('YYYY-MM-DD HH:mm:ss')

看moment括号中的内容。左边对v-model绑定的值做格式处理,右侧写出转换之后的格式是什么样的。便于moment知道当前是什么类型的值。使用utcOffset(0)转换为0时区,转换之后的格式要求是什么样的就写成什么样

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值