时间戳处理
20230719更新:现在一般使用 moment
import moment from 'moment';
场景:后端传入时间戳,需要获取其中“月-日”展示
参考:把之前用到过的时间戳方式都整理了一下
总结:
4、处理时间戳的插件 date-fns
import {format} from 'date-fns';
filters: {
formatTimeStamp: (ts) => format(ts * 1000, 'yyyy-MM-dd hh:mm:ss'),
},
<span></span>
1、new Date()获取的时间是什么时间
答:运行环境的时间。如果是浏览器那就是电脑时间或者手机时间;如果是node.js那就是服务器时间 (注意:前台获取的时间都用处不大、用户可以改、不安全;通常时间用于从后端传入、服务器的时间一定是统一的、解析时间戳;)
2、JS获取当前时间戳方法
js中单独调用new Date(),例如document.write(new Date());
显示的结果是:Mar 31 10:10:43 UTC+0800 2012
这种格式的时间;
但是用new Date() 参与计算会自动转换为从1970.1.1开始的毫秒数。
//方法1【不建议使用】
var timestamp =Date.parse(new Date());
注意:Date.parse()得到的结果将后三位(毫秒)转换成了000显示,使用时可能会出现问题。例如动态添加页面元素id的时候,不建议使用
//方法2
var timestamp =(new Date()).valueOf();
//方法3
var timestamp=new Date().getTime();
//方法4
var timestamp=+new Date();
3、把时间戳转换为“年-月-日”的方法封装
/**
* 时间戳转化为年 月 日
*
* @param {*} timestamp ts: 传入时间戳
* @param {*} format 返回格式,支持自定义,但参数必须与formateArr里保持一致
*/
function timeFormatTime(timestamp,format){
const formateArr = ['Y', 'M', 'D'];
let returnArr = [];
let date = new Date(timestamp);
let year = date.getFullYear()
let month = date.getMonth() + 1
let day = date.getDate()
returnArr.push(year, month, day); // 得到年-月-日
returnArr = returnArr.map(formatNumber);
for (var i in returnArr) {
format = format.replace(formateArr[i], returnArr[i]);
}
return format;
}
/* 输出 */
module.exports = {
timeFormatTime:timeFormatTime
}
然后在要使用的页面中,打开index.js
进行变量声明
data:{
createTime:''
}
然后再引入 组件,保存时间戳转换过来的值
let ss = 1530100597000;
var time = require('../../utils/util.js');
that.setData({
createTime:time.timeFormatTime(ss, 'Y/M/D')
})