时间戳
注:时间戳包括10位和13位两种,小程序中默认生成的时间戳是13位的。两者的区别是精度不同,13位精确到毫秒,10位精确到秒。实际上,13位时间戳只是比10位的末尾多了000,如果想要转化只要乘除1000即可。
时间戳转日期
在utils.js中定义函数
//时间戳转日期
function js_date_time(number, format) {
var formateArr = ['Y', 'M', 'D', 'h', 'm', 's'];
var returnArr = [];
number = number/1000;
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;
}
module.exports = {
js_date_time: js_date_time //时间戳
}
调用举例:
example.js
var util = require('../../utils/util.js');
var time = util.js_date_time('要转化的时间戳', 'Y/M/D h:m:s');
日期转时间戳
var time = new Date('日期'.getTime()),
注:此处的日期应该为
如果不是,需要转化成这个格式后再使用
通过生日时间戳计算当前年龄
考虑到用户年龄随时间变化,因此数据库中存的是用户的生日(年、月、日),格式为时间戳。
前端需要根据生日,计算显示出用户现在的年龄。
var util = require('../../utils/util.js');
//获取当前时间
var time1 = util.formatTime(new Date());
time1 = new Date(time1).getTime();
//定义当前时间数组、生日时间数组
var nowArray = util.js_date_time(time1, 'Y/M/D').split('/');
var birthArray = util.js_date_time(this.data.year, 'Y/M/D').split('/');
//计算年龄
var old = nowArray[0] - birthArray[0];
if (nowArray[1] < birthArray[1]) {
old = old - 1;
}
else if (nowArray[1] == birthArray[1]) {
if (nowArray[2] < birthArray[2]) {
old = old - 1;
}
}