JavaScript 时间戳与日期相互转换方法详解

作者:百宝袋

时间:2026-10-22

浏览:368

本文详细介绍 JavaScript 中日期与时间戳的相互转换方法。涵盖使用 new Date() 获取当前或指定日期,通过 getTime() 转换为毫秒级时间戳,以及利用构造函数将时间戳还原为日期对象。此外,还介绍了基于 prototype 的格式化工具函数实现,帮助开发者高效处理前端时间数据。

文章目录

在实际开发中,经常需要将获取到的时间数据转换为时间戳格式。针对这一需求,整理以下常用转换方法以供参考。

日期转换为时间戳

一、日期转换为时间戳

进行转换前,需先获取日期对象。这可以通过直接指定具体日期,或使用当前系统时间来实现。获取当前日期的标准做法是使用 new Date()。具体实现代码如下。


// (1)、将当前日期转换为时间戳。
  var now = new Date();
  console.log(now.getTime()) // 将当前日期转换为时间戳,getTime()方法可返回距1970年1月1日之间的毫秒数。

// (2)、将指定日期转换为时间戳。
  var t = "2017-12-08 20:5:30"; // 月、日、时、分、秒如果不满两位数可不带0.
  var T = new Date(t); // 将指定日期转换为标准日期格式。Fri Dec 08 2017 20:05:30 GMT+0800 (中国标准时间)
  console.log(T.getTime()) // 将转换后的标准日期转换为时间戳。

时间戳转换为日期

二、时间戳转换为日期


var t = 787986456465; // 当参数为数字的时候,那么这个参数就是时间戳,被视为毫秒,创建一个距离1970年1月一日指定毫秒的时间日期对象。
console.log(new Date(t)) // Wed Dec 21 1994 13:07:36 GMT+0800 (中国标准时间)
var t2 = "2017-5-8 12:50:30";
console.log(new Date(t2)) // Mon May 08 2017 12:50:30 GMT+0800 (中国标准时间)
var t3 = "2017-10-1";
console.log(new Date(t3)) // Sun Oct 01 2017 00:00:00 GMT+0800 (中国标准时间) 不设定时分秒,则默认转换为00:00:00

时间戳与日期字符串转换补充

补充说明:以下部分介绍 JavaScript 中时间戳与日期字符串的相互转换技巧。


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
// 获取当前时间戳(以s为单位)
var timestamp = Date.parse(new Date());
timestamp = timestamp / 1000;
//当前时间戳为:1403149534
console.log("当前时间戳为:" + timestamp);
// 获取某个时间格式的时间戳
var stringTime = "2014-07-10 10:21:12";
var timestamp2 = Date.parse(new Date(stringTime));
timestamp2 = timestamp2 / 1000;
//2014-07-10 10:21:12的时间戳为:1404958872 
console.log(stringTime + "的时间戳为:" + timestamp2);
// 将当前时间换成时间格式字符串
var timestamp3 = 1403058804;
var newDate = new Date();
newDate.setTime(timestamp3 * 1000);
// Wed Jun 18 2014 
console.log(newDate.toDateString());
// Wed, 18 Jun 2014 02:33:24 GMT 
console.log(newDate.toGMTString());
// 2014-06-18T02:33:24.000Z
console.log(newDate.toISOString());
// 2014-06-18T02:33:24.000Z 
console.log(newDate.toJSON());
// 2014年6月18日 
console.log(newDate.toLocaleDateString());
// 2014年6月18日 上午10:33:24 
console.log(newDate.toLocaleString());
// 上午10:33:24 
console.log(newDate.toLocaleTimeString());
// Wed Jun 18 2014 10:33:24 GMT+0800 (中国标准时间)
console.log(newDate.toString());
// 10:33:24 GMT+0800 (中国标准时间) 
console.log(newDate.toTimeString());
// Wed, 18 Jun 2014 02:33:24 GMT
console.log(newDate.toUTCString());
Date.prototype.format = function(format) {
    var date = {
       "M+": this.getMonth() + 1,
       "d+": this.getDate(),
       "h+": this.getHours(),
       "m+": this.getMinutes(),
       "s+": this.getSeconds(),
       "q+": Math.floor((this.getMonth() + 3) / 3),
       "S+": this.getMilliseconds()
    };
    if (/(y+)/i.test(format)) {
       format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
    }
    for (var k in date) {
       if (new RegExp("(" + k + ")").test(format)) {
           format = format.replace(RegExp.$1, RegExp.$1.length == 1
              ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
       }
    }
    return format;
}
console.log(newDate.format('yyyy-MM-dd h:m:s'));
</script>

上述方法中,最后一种是通过设置 prototype 属性来实现格式化的转换方式。

总结

以上内容介绍了 JavaScript 中时间戳与日期互转的核心方法,希望能为读者提供帮助。如有任何疑问,欢迎留言交流,作者将及时回复。感谢对本站的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章