js 中日期 转换成时间戳 例如2013-08-30 转换为时间戳

JavaScript016

js 中日期 转换成时间戳 例如2013-08-30 转换为时间戳,第1张

js中传入指定日期转换为时间戳,可以使用原生javascript的Date对象进行格式化操作或第三方js库如moment.js进行格式化输出。以下是这2种方法的具体实现:

1、使用原生javascript的Date对象,进行格式化

(1)将日期字符串转换为Date类型的对象。

let d = new Date('2018-01-01')

(2)转换为时间戳。

let t = d.getTime(d) // 方法1

let t = d.valueOf(d) // 方法2

let t = d.parse(d) // 方法3

2、第三方js库moment.js进行格式化

(1)在html中引入moment.js,添加以下script标签:

<script src="https://cdn.bootcss.com/moment.js/2.20.1/moment.js"></script>

(2)将日期转换为时间戳

参数格式为:YYYY-MM-DD HH:mm:ss 或 YYYY-MM-DD

moment('2018-01-01').valueOf()

扩展资料:

1、js将当前日期转换为时间戳

let timeStamp = new Date().getTime()

2、js将时间戳转换为日期

let d = new Date(timestamp * 1000)// 时间戳为10位需*1000,时间戳为13位的话不需乘1000

let yyyy = d.getFullYear() + '-'

let MM = (d.getMonth()+1 <10 ? '0'+(d.getMonth()+1) : d.getMonth()+1) + '-'

let dd = d.getDate() + ' '

let HH = d.getHours() + ':'

let mm = d.getMinutes() + ':'

let ss = d.getSeconds()

return yyyy + MM + dd + HH + mm + ss

参考资料来源:JavaScript标准库-Date

Date.now()、new Date().getTime() 和 +new Date() 是浏览器环境下一直都有的,自然不必多说。

process.uptime() 返回的是Node程序已运行的时间,单位秒。

process.hrtime() 返回的是当前的高分辨率时间,格式为[秒, 纳秒]。它是相对于在过去的任意时间,该值与日期无关。优点是:可以获得一个非常精准的时间差,不会受到时钟飘逸的影响;缺点是:速度慢。

要获取一个非常精确地时间间隔,用 process.hrtime();大量循环获取时间戳的时候,要考虑性能,用 Date.now()。

var formatTime = function(time = new Date(), format) {

    const TOTOW = e => `0${e}`.substr(-2) // 转成2位的格式  1 => 01

    const date = new Date(time)

    const yyyy = date.getFullYear()

    const MM = TOTOW(date.getMonth() + 1)

    const dd = TOTOW(date.getDate())

    const hh = TOTOW(date.getHours())

    const mm = TOTOW(date.getMinutes())

    const ss = TOTOW(date.getSeconds())

    let result

    if (format) {

      result = format.replace(/yyyy/i, yyyy).replace(/MM/, MM).replace(/dd/i, dd).replace(/hh/i, hh).replace(/mm/, mm).replace(/ss/i, ss)

    } else {

      result = `${yyyy}-${MM}-${dd} ${hh}:${mm}:${ss}`

    }

    return result

}

setInterval(() => {

let now = formatTime(new Date(), 'yyyy年MM月dd日 hh时mm分ss秒') // 月份必须是大写MM,分钟必须是小写mm,其他大小写都行

document.body.innerText = now

}, 1000)