时间戳与时间的转换

一直在用 moment.js 来转换时间,特别方便,因为自己懒,也没研究过它的代码,只是傻瓜式的拿过来就用了。可是,今天在小程序里面就遇到问题了,引用不了。。。估计也是我自己的问题,本来用到的地方不多,算了,还是自己弄一下吧。

获得当前时间戳


  • 不带毫秒形式(把毫秒变成000)
Date.parse(new Date()) // 1498737415000
  • 带毫秒形式
new Date().getTime() // 1498737541918
//或者
Number(new Date()) // 同上

时间戳转换时间


function formatDateTime(datetime) {
var time = new Date(datetime)
var year = time.getFullYear()
var month = time.getMonth() + 1
var day = time.getDate()
var hour = time.getHours()
var minute = time.getMinutes()
var second = time.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
}

日期的加减


原理就是把需要加减的数转换成毫秒数,然后与原来的日期进行加减运算。

  • 加日期
formatDateTime(new Date(new Date().getTime() + 1000 * 24 * 60 * 60 * value))
  • 减日期
formatDateTime(new Date(new Date().getTime() - 1000 * 24 * 60 * 60 * value))

做成 js 插件


上面的函数写在一个 datetime.js 文件里:

/* 函数见上 */
module.exports = {
formatDateTime: formatDateTime
}

使用的时候就用:

var datetime = require('/datetime.js');
datetime.formatDateTime(value);

就这样吧,回家吃饭去!