经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » JavaScript » 查看文章
JS时间戳转换为常用时间格式的三种方式
来源:jb51  时间:2023/4/17 9:15:42  对本文有异议

前言

在js中将时间戳转换为常用的时间格式,有三种主要的方式

1、使用JS中已有的函数,例如getFullYear(),getMonth()等,将时间戳直接转换成对应的年月;

2、创建时间过滤器,在其他的页面中直接调用该过滤器,转换时间戳;

3、使用day.js,将时间戳转换成常用的时间写法

4、本文以vue2和vue3两个后台管理系统中的下单时间为例,将原本的时间戳转换为年月日的形式,其中vue2使用js和element ui,vue3使用TS和element-plus

1、js 时间戳转日期(可直接复制)

  1. // 时间戳
  2. let timestamp = 1662537367
  3. // 此处时间戳以毫秒为单位
  4. let date = new Date(parseInt(timestamp) * 1000);
  5. let Year = date.getFullYear();
  6. let Moth = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
  7. let Day = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate());
  8. let Hour = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours());
  9. let Minute = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes());
  10. let Sechond = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
  11. let GMT = Year + '-' + Moth + '-' + Day + ' '+ Hour +':'+ Minute + ':' + Sechond;
  12. console.log(GMT) // 2022-09-07 15:56:07

附加

  1. let nowTime = new Date().valueOf();//时间戳
  2. console.log(nowTime) // 获取当前时间的时间戳

2、在main.js中创建过滤器

示例:后台管理系统,vue2 + JS + element ui,将下单时间的时间戳转换为年月日的形式

(1)main.js中,创建过滤器将其挂载到vue上

注意:我这边后台返回的数据需要进行单位换算,所以originVal * 1000,具体情况具体分析,不同单位的数据请自行调整

  1. import Vue from 'vue'
  2. // 创建过滤器,将秒数过滤为年月日,时分秒,传参值originVal为毫秒
  3. Vue.filter('dateFormat', function(originVal){
  4. // 先把传参毫秒转化为new Date()
  5. const dt = new Date(originVal * 1000)
  6. const y = dt.getFullYear()
  7. // 月份是从0开始,需要+1
  8. // +''是把数字转化为字符串,padStart(2,'0')是把字符串设置为2位数,不足2位则在开头加'0'
  9. const m = (dt.getMonth() + 1 + '').padStart(2, '0')
  10. const d = (dt.getDate() + '').padStart(2, '0')
  11.  
  12. return `${y}-${m}-${d}`
  13. })

(2)页面中具体使用

  1. <el-table :data="orderList" border stripe class="mt20">
  2. <el-table-column label="下单时间" prop="create_time">
  3. <template slot-scope="scope">
  4. {{scope.row.create_time | dateFormat}}
  5. </template>
  6. </el-table-column>
  7. </el-table>

3、day.js

点击链接直达:https://dayjs.fenxianglu.cn/

(1)三种安装方式任选其一

  1. npm install dayjs
  2. cnpm install dayjs -S
  3. yarn add dayjs

(2)页面中具体使用

示例:后台管理系统,vue3 + TS + element-plus,将下单时间的时间戳转换为年月日的形式

使用前:

使用后:

① html部分

  1. <el-table>
  2. <el-table-column prop="create_time" label="下单时间" />
  3. </el-table>

②获取到的数据

③TS部分

对拿到的数据中的创建时间进行转换,其中dayjs()中携带需要转换的时间戳参数,format()中携带所期待转换成的形式

  1. // 引入
  2. import { dayjs } from "element-plus";
  3.  
  4. interface IOrderList {
  5. order_number: string; // 订单编号
  6. create_time: number; // 下单时间
  7. }
  8. const orderList = reactive<IOrderList[]>([]);
  9. // 获取订单数据
  10. const getOrderList = async () => {
  11. orderList.length = 0;
  12. let orders = await ordersAPI(pageInfo.value);
  13. // 对 orders.data.goods进行遍历,dayjs()中携带需要转换的时间戳参数,format()中携带所期待转换成的形式
  14. orders.data.goods.forEach((el: any) => {
  15. el.create_time = dayjs(el.create_time * 1000).format("YYYY-MM-DD");
  16. });
  17. orderList.push(...orders.data.goods);
  18. };
  19. getOrderList();

总结

到此这篇关于JS时间戳转换为常用时间格式的三种方式的文章就介绍到这了,更多相关JS时间戳转换方式内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号