小程序实现 时间格式化 公共方法封装
注意 时间戳两种格式 1.XXXXXX 2. XXXXXX000
时间戳分为10位和13位,date默认精度是毫秒,也就是说生成的时间戳就是13位的,有的时间戳默认就是10位的,因为其精度是秒。
13位时间戳如何转换成10位时间戳
第一种:通过substring方法,将13位的时间戳最后三位数字截取
第二种:将13位时间戳除以1000取整
- 第一步 封装
function formatTime(date) {
var year = date.getFullYear()
var month = date.getMonth() + 1
var day = date.getDate()
var hour = date.getHours()
var minute = date.getMinutes()
var second = date.getSeconds()
return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}
function formatNumber(n) {
n = n.toString()
return n[1] ? n : '0' + n
}
/**
* 时间戳转化为年 月 日 时 分 秒
* number: 传入时间戳
* format:返回格式,支持自定义,但参数必须与formateArr里保持一致
*/
function formatTimeTwo(number, format) {
var formateArr = ['Y', 'M', 'D', 'h', 'm', 's'];
var returnArr = [];
// var date = new Date(number * 1000);
var date = new Date(number);
returnArr.push(date.getFullYear());
returnArr.push(formatNumber(date.getMonth() + 1));
returnArr.push(formatNumber(date.getDate()));
returnArr.push(formatNumber(date.getHours()));
returnArr.push(formatNumber(date.getMinutes()));
returnArr.push(formatNumber(date.getSeconds()));
for (var i in returnArr) {
format = format.replace(formateArr[i], returnArr[i]);
}
return format;
}
function formatBrushDuration(time){
var theTime = time //时间戳(秒)
var minute= 0; // 分
var hour = 0;//小时
if(theTime > 60){
minute= parseInt(theTime / 60);
theTime = parseInt(theTime % 60);
if(minute> 60){
hour = parseInt(minute/ 60);
middle = parseInt(minute% 60);
}
}
var result= "" + parseInt(theTime) + "s"
if(minute> 0){
result= "" + parseInt(minute) + "m" + result;
}
if(hour > 0){
result= "" + parseInt(hour) + "h" + result;
}
return result;
}
module.exports = {
formatTime: formatTime,
formatTimeTwo: formatTimeTwo,
formatBrushDuration:formatBrushDuration
}
- 第二步 引用
var time = require('../../utils/common.js');
- 第三步 使用
item.BrushTime=time.formatTimeTwo(new Date(brushTime), 'h:m');
item.TimeLong=time.formatBrushDuration(item.TimeLong);