一行js代码实现时间戳转时间格式

摘要:
在前端开发过程中,通常需要将时间戳转换为标准时间格式,以便用户浏览。新想法为了将时间戳转换为我们需要的时间格式,我们编写了两个函数,总共有十多行。接下来,我将介绍一个新想法。一行代码可以完成时间戳到“YYYY-MM-DDHH:MM:ss”时间格式的转换。代码立即被简化了很多。不用多说,代码函数time{vardate=newDate;//添加8小时的返回日期.toJSON().substr.replace;}time()//“2021-04-0611:01:30”date的“toJSON”方法返回格林威治标准时间的JSON格式字符串,这实际上是使用“toISOString”方法的结果。

前端开发过程中,常常需要将时间戳转化为标准时间格式供用户浏览。不借助方法库的情况下,如何又快又好的实现呢?下面介绍两种方法。

老方法

平常用的基本是这个方法,用Date方法依次将年月日时分秒一个个算出来,然后拼接成需要的时间格式字符串。

function transformTime(timestamp = +new Date()) {
    if (timestamp) {
        var time = new Date(timestamp);
        var y = time.getFullYear(); //getFullYear方法以四位数字返回年份
        var M = time.getMonth() + 1; // getMonth方法从 Date 对象返回月份 (0 ~ 11),返回结果需要手动加一
        var d = time.getDate(); // getDate方法从 Date 对象返回一个月中的某一天 (1 ~ 31)
        var h = time.getHours(); // getHours方法返回 Date 对象的小时 (0 ~ 23)
        var m = time.getMinutes(); // getMinutes方法返回 Date 对象的分钟 (0 ~ 59)
        var s = time.getSeconds(); // getSeconds方法返回 Date 对象的秒数 (0 ~ 59)
        return y + '-' + M + '-' + d + ' ' + h + ':' + m + ':' + s;
      } else {
          return '';
      }
}
transformTime(); // "2021-4-6 11:1:30"

老方法改进版

上面的转换方法,通过将时间戳转换为Date实例,利用Date对应的方法获取对应的年月日时分秒,获取的时间格式是‘2021-4-6 11:1:30’,看着有点别扭。为了转化为我们常用的时间格式,还需要注意对小于10的值,在前面添加字符串‘0’,转换为‘2021-04-06 11:01:30’这种时间格式。

function transformTime(timestamp = +new Date()) {
    if (timestamp) {
        var time = new Date(timestamp);
        var y = time.getFullYear();
        var M = time.getMonth() + 1;
        var d = time.getDate();
        var h = time.getHours();
        var m = time.getMinutes();
        var s = time.getSeconds();
        return y + '-' + addZero(M) + '-' + addZero(d) + ' ' + addZero(h) + ':' + addZero(m) + ':' + addZero(s);
      } else {
          return '';
      }
}
function addZero(m) {
    return m < 10 ? '0' + m : m;
}
transformTime(); // "2021-04-06 11:01:30"

对返回小于10的时间数值进行处理,用‘addZero’方法为字符串添加‘0’,这样格式就对称了。

新思路

为了将时间戳转换为我们需要的时间格式,我们写了两个函数,加起来十几行。下面我将介绍一种新的思路,一行代码就能完成时间戳转换为‘YYYY-MM-DD HH:mm:ss’形式的时间格式,顿时代码精简了很多,话不多说,亮出代码

function time(time = +new Date()) {
    var date = new Date(time + 8 * 3600 * 1000); // 增加8小时
    return date.toJSON().substr(0, 19).replace('T', ' ');
}
time(); // "2021-04-06 11:01:30"

Date的‘toJSON’方法返回格林威治时间的JSON格式字符串,实际是使用‘toISOString’方法的结果。字符串形如‘2021-04-06T03:01:30.000Z,转化为北京时间需要额外增加八个时区,我们需要取字符串前19位,然后把‘T’替换为空格,即是我们需要的时间格式。

function time(time = +new Date()) {
    var date = new Date(time + 8 * 3600 * 1000);
    return date.toJSON().substr(0, 19).replace('T', ' ').replace(/-/g, '.');
}
time(); // "2021.04.06 11:01:30"

把时间格式中的‘-’修改为‘.’或者其他符号都是可以的。对比老方法,这种方法代码量比以前省了不止一星半点的,读起来也简洁多了。如果时间格式需要毫秒数,只需要获取前23位字符串,和上面一样用replace方法替换。

原文链接:https://segmentfault.com/a/1190000015992232

免责声明:文章转载自《一行js代码实现时间戳转时间格式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇利用nginx_push_stream_module实现服务器消息推送设置textView或者label的行间距方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容

分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容 在写JS的过程中,为了调试我们常常会 写很多 console.log、console.info、console.group、console.warn、console.error代码来查看JS 的运行情况,但发布时又因为IE不支持console,又要去掉这些代码,一不小心就会出错 问题...

【JS】前端文件下载(无刷新)方法总结

#传统方法 利用iframe 或 form.submit 或 windows.open直接向后端发请求,后端返回文件流,后端处理成功后会直接返回到页面,浏览器会整理并打开自己的保存下载文件机制 。 1、利用form.submit直接向后端提交,后端返回文件流 1)前端代码: 1 var downloadURL = "RestHandle.ashx"; 2...

java大文件(视频)切割上传

我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。 首先我们需要了解的是上传文件三要素: 1.表单提交方式:post (get方式提交有大小限制,post没有) 2.表单的enctype属性:必须设置为multipart/form-data. 3.表单必须有文件上传项:file,且文件项需要给定n...

JSON与JS的区别以及转换

JSON是什么?(JSON和JavaScript对象有什么区别?)如何把JS对象转化为JSON字符串,又如何把JSON字符串转化为JavaScript对象? JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。 JSON 是 JavaScript 原生格式, 这意味着在JavaScript 中处理 JSON...

NTP 协议介绍

NTP协议 NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP基于UDP报文进行传输,使用的UDP端口号为123。使用NTP的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。...

C#-WebForm-JS知识:基础部分、BOM部分、DOM部分、JS事件

---恢复内容开始--- 一、基础部分: 1、JavaScript 是什么? 是一门脚本语言,是属于弱类型(语言语法很随意),C#是强类型(语言语法非常严格)(李献策lxc) 优点:JS 执行速度快 2、JS 与java有什么关系?  没有任何关系 3、JS 能做什么事情?   能控制浏览器 BOM   控制元素 DOM JS不能做什么?   不能操作文件...