JS ISO时间 T Z ISO8601 YYYY-MM-DDTHH:mm:ss.sssZ

START

  • 最近遇到很多次2022-03-29T12:30:53.580Z ,这种带有字母T和字母Z的时间字符串。
  • 遇到次数多了,逐渐引起我的好奇心,随即研究一下,写此文记录一下,所了解的内容。

这种时间格式怎么来的?

结论

暂时发现两个方法可以生成这种格式的时间字符串

1.
new Date().toISOString() // '2022-03-29T12:47:13.645Z'

2.
new Date().toJSON() // '2022-03-29T12:47:35.036Z'

3. ps
// 暂时发现 axios 源码在处理时间时,会将GMT格式时间转换成ISO格式。详情见下图

在这里插入图片描述

Date.prototype.toISOString()

**MDN官网解释:**返回一个 ISO 格式的字符串:YYYY-MM-DDTHH:mm:ss.sssZ。时区总是UTC(协调世界时),加一个后缀“Z”标识。

Date.prototype.toJSON()

MDN官网解释: toJSON() 方法返回 Date 对象的字符串形式

随即衍生出来的问题:
  1. 什么是 ISO 格式的字符串?

    ISO 8601:国际标准化组织的国际标准ISO 8601是日期和时间的表示方法

    可参考:https://baike.baidu.com/item/ISO%208601/3910715?fr=aladdin

  2. 什么是协调世界时?

    可参考:https://www.cnblogs.com/doit8791/p/10398997.html

字母T和字母Z是什么含义

字母T

分隔符,指示时间元素的开始

字母sss

毫秒数

字母Z

后面可能会跟 -或者+ 以及 hh:ss 时区偏差的时间

详细图解

是否影响我们使用?

element-ui中使用

  • 无影响,展示的话设置一个 format value-format 分别处理展示格式值格式即可

代码

<template>
  <div class="#app">
    <div>
      <h2>el-date-picker</h2>
      <el-date-picker
        v-model="value"
        type="datetime"
        format="yyyy-MM-dd HH:mm:ss"
        value-format="yyyy-MM-dd HH:mm:ss"
        placeholder="选择时间"
      >
      </el-date-picker>
    </div>

    <div>
      <h2>时间的值</h2>
      {{ value }}
    </div>
  </div>
</template>

<script>
export default {
  name: "App",
  data() {
    return {
      value: "",
    };
  },
  created() {
    // 1.设置默认值
    this.value = new Date().toISOString();
    console.log(this.value)
  },
};
</script>

运行截图

手动格式化这个时间?

正则处理一下即可字符串 补充一下时差即可

// `8 * 3600 * 1000 补充时差` 北京东八区所以补八个小时 
new Date(+new Date(`需要格式的时间`) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '')

// 使用案例
var time=new Date().toISOString()  // 2022-03-29T15:51:27.073Z
new Date(+new Date(time) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '') // '2022-03-29 23:51:27'

举一反三 其他格式的时间

// 默认的
new Date()  // Wed Mar 30 2022 00:46:02 GMT+0800 (中国标准时间)

// GMT格式
new Date().toGMTString() // 'Tue, 29 Mar 2022 16:24:09 GMT'

// ISO格式
new Date().toISOString() // '2022-03-29T16:47:26.681Z'

new Date().toDateString() // 'Wed Mar 30 2022'

END

  • 简单总结呢,就是时间的不同展示格式。
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lazy_tomato

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值