创建小程序项目时会默认生成一个utils/util.js文件,里面的内容主要如下:
const formatTime = date => {
const year = date.getFullYear()
const month = date.getMonth() + 1
const day = date.getDate()
const hour = date.getHours()
const minute = date.getMinutes()
const second = date.getSeconds()
return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}
const formatNumber = n => {
n = n.toString()
return n[1] ? n : '0' + n
}
module.exports = {
formatTime: formatTime
}
那么怎么使用这个函数呢?
首先在index.js导入util.js即var Util= require('../../utils/util.js'),如下图
然后在onLoad中使用以下代码:
onLoad: function (options) {
var date = new Date();
console.log(Util.formatTime(date))
},
这样就可以得到以下结果的输出:
然而很多时候,我们获得是unix的时间戳,比如说是“1547205501”,那么这个数值代表是什么时间呢?
首先我们在util.js中加入可以转化以上时间戳的函数,如下:
/**
* 时间戳转化为年 月 日 时 分 秒
* number: 传入时间戳
* format:返回格式,支持自定义,但参数必须与formateArr里保持一致
*/
function formatTimeTwo(number, format) {
var formateArr = ['Y', 'M', 'D', 'h', 'm', 's'];
var returnArr = [];
var date = new Date(number * 1000);
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;
}
加完之后如下:
然后在index.js中使用函数
onLoad: function (options) {
var date = new Date();
console.log(Util.formatTime(date));
var unixdate = 1547205501;
console.log(Util.formatTimeTwo(unixdate, 'Y.M.D h:m:s'));
console.log(Util.formatTimeTwo(unixdate, 'Y-M-D h:m:s'));
console.log(Util.formatTimeTwo(unixdate, 'Y-M-D h:m'));
console.log(Util.formatTimeTwo(unixdate, 'Y-M-D h'));
console.log(Util.formatTimeTwo(unixdate, 'Y-M-D'));
console.log(Util.formatTimeTwo(unixdate, 'Y-M'));
console.log(Util.formatTimeTwo(unixdate, 'Y'));
},
使用的输出结果如下:
2019-8-12日更新:
又看到以下一篇比较好的文章: