Js时间戳函数

更新日期: 2022-01-18 阅读: 1.8k 标签: 时间

一、js时间转时间戳

javascript获得时间戳的方法有五种,后四种都是通过实例化时间对象new Date() 来进一步获取当前的时间戳,Js处理时间主要使用时间对象Date。

方法一:Date.now()

Date.now()可以获得当前的时间戳:

console.log(Date.now()) //1642471441587

方法二:Date.parse()

Date.parse()将字符串或者时间对象直接转化成时间戳:

Date.parse(new Date()) //1642471535000
Date.parse("2022/1/18 10:05") //1642471500000

注意:不推荐这种办法,毫秒级别的数值被转化为000。

方法三:valueOf()

通过valueOf()函数返回指定对象的原始值获得准确的时间戳值:

(new Date()).valueOf() //1642471624512

方法四:getTime()

通过原型方法直接获得当前时间的毫秒值,准确:

new Date().getTime() //1642471711588

方法五:Number

将时间对象转化为一个number类型的数值,即时间戳

Number(new Date()) //1642471746435


二、js时间戳转时间

我们可以接用 new Date(时间戳) 格式转化获得当前时间,比如:

new Date(1472048779952)
Wed Aug 24 2016 22:26:19 GMT+0800 (中国标准时间)

注意:时间戳参数必须是Number类型,如果是字符串,解析结果:Invalid Date。

如果后端直接返回时间戳给前端,前端如何转换呢?下面介绍2种实现方式

方法一:生成'2022/1/18 上午10:09 '格式

function getLocalTime(n) {   
return new Date(parseInt(n)).toLocaleString().replace(/:\d{1,2}$/,' ');
}
getLocalTime(1642471746435) //'2022/1/18 上午10:09 '

也可以用如下,想取几位就几位,注意,空格也算!

function getLocalTime(n) {   
return new Date(parseInt(n)).toLocaleString().substr(0,14) }
getLocalTime(1642471746435) //'2022/1/18 上午10'

或者利用正则:

function  getLocalTime(n){
return new Date(parseInt(n)).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");
}
getLocalTime (1642471746435) //'2022/1/18 上午10:09:06'

方法二:生成'yyyy-MM-dd hh:mm:ss '格式

先转换为data对象,然后利用拼接正则等手段来实现:

function getData(n){
n=new Date(n)
return n.toLocaleDateString().replace(/\//g, "-") + " " + n.toTimeString().substr(0, 8)
}
getData(1642471746435) //'2022-1-18 10:09:06'

不过这样转换在某些浏览器上会出现不理想的效果,因为toLocaleDateString()方法是因浏览器而异的,比如 IE为"2016年8月24日 22:26:19"格式 ;搜狗为"Wednesday, August 24, 2016 22:39:42"

可以通过分别获取时间的年月日进行拼接,这样兼容性更好:

function getData(n) {
let now = new Date(n),
y = now.getFullYear(),
m = now.getMonth() + 1,
d = now.getDate();
return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + now.toTimeString().substr(0, 8);
}
getData(1642471746435) //'2022-1-18 10:09:06'


三、知识普及

1、当前系统区域设置格式(toLocaleDateString和toLocaleTimeString)

(new Date()).toLocaleDateString() + " " + (new Date()).toLocaleTimeString() 
//'2022/1/18 上午10:30:30'

2.普通字符串(toDateString和toTimeString)

(new Date()).toDateString() + " " + (new Date()).toTimeString() 
//'Tue Jan 18 2022 10:30:50 GMT+0800 (中国标准时间)'

3.格林威治标准时间(toGMTString)

(new Date()).toGMTString() 
//'Tue, 18 Jan 2022 02:31:10 GMT'

4.全球标准时间(toUTCString)

(new Date()).toUTCString() 
//'Tue, 18 Jan 2022 02:31:25 GMT'

5.Date对象字符串(toString)

(new Date()).toString() 
'Tue Jan 18 2022 10:31:44 GMT+0800 (中国标准时间)'
Date对象构造函数

Date对象具有多种构造函数:

new Date() 
new Date(milliseconds) 
new Date(datestring) 
new Date(year, month) 
new Date(year, month, day) 
new Date(year, month, day, hours) 
new Date(year, month, day, hours, minutes) 
new Date(year, month, day, hours, minutes, seconds) 
new Date(year, month, day, hours, minutes, seconds, microseconds) 
Date对象构造函数参数说明: 
milliseconds - 距离JavaScript内部定义的起始时间1970年1月1日的毫秒数 
datestring - 字符串代表的日期与时间。此字符串可以使用Date.parse()转换
year - 四位数的年份,如果取值为0-99,则在其之上加上1900
month - 0(代表一月)-11(代表十二月)之间的月份
day - 1-31之间的日期
hours - 0(代表午夜)-23之间的小时数
minutes - 0-59之间的分钟数
seconds - 0-59之间的秒数
microseconds - 0-999之间的毫秒数
Date对象返回值 
如果没有任何参数,将返回当前日期; 
如果参数为一个数字,将数字视为毫秒值,转换为日期
如果参数为一个字符串,将字符串视为日期的字符串表示,转换为日期
还可以使用六个构造函数精确定义,并返回时间 
var d1 = new Date(); 
document.write(d1.toString());
var d2 = new Date("2009-08-08 12:12:12);
document.write(d2.toString());
var d3 = new Date(2009, 8, 8);
document.write(d3.toString());

Date做为JavaScript的一种内置对象,必须使用new的方式创建。 

Date对象在JavaScript内部的表示方式是,距1970年1月1日午夜(GMT时间)的毫秒数(时间戳),我们在这里也把Date的内部表示形式称为时间戳。可以使用getTime()将Date对象转换为Date的时间戳,方法setTime()可以把Date的时间戳转换为Date的标准形式。

Date函数使用语法 
date.方法名(参数1,参数2,...);
Date.方法名();
date代表一个日期对象的实例,Date代表日期对象,date.方法名调用的为对象的成员函数
Date.方法名调用的为对象的静态函数
var d=new Date(); 
var d2=Date.UTC();
Date函数按功能分类 

日期获取类函数

Date() 函数 -- Date对象的构造函数 
getDate() 函数 -- 返回date对象中的月份中的天数(1-31)
getDay()函数 -- 返回date对象中的星期中的天数(0-6)
getFullYear() 函数 -- 返回date对象中的四位数年份
getHours()函数 -- 返回date对象中的小时数(0-23)
getMilliseconds() 函数 -- 返回date对象中的毫秒数(0-999)
getMinutes() 函数 -- 返回date对象中的分钟数(0-59)
getMonth() 函数 -- 返回date对象中的月份数(0-11)
getSeconds() 函数 -- 返回date对象中的秒数(0-59)
getTime() 函数 -- 返回date对象的时间戳表示法(毫秒表示)
getTimezoneOffset() 函数 -- 返回本地时间与用UTC表示当前日期的时间差,以分钟为单位
getUTCDate() 函数 -- 返回date对象中用世界标准时间(UTC)表示的月份中的一天(1-31)
getUTCDay() 函数 -- 返回date对象中用世界标准时间(UTC)表示的周中的一天(0-6)
getUTCFullYear() 函数 -- 返回date对象中用世界标准时间(UTC)表示的四位年份
getUTCHours() 函数 -- 返回date对象中用世界标准时间(UTC)表示的小时数(0-23)
getUTCMilliseconds() 函数 -- 返回date对象中用世界标准时间(UTC)表示的毫秒数(0-999)
getUTCMinutes() 函数 -- 返回date对象中用世界标准时间(UTC)表示的分钟数(0-59)
getUTCMonth() 函数 -- 返回date对象中用世界标准时间(UTC)表示的月份数(0-11)
getUTCSeconds() 函数 -- 返回date对象中用世界标准时间(UTC)表示的秒数(0-59)
getYear() 函数 -- 返回date对象的年份(真实年份减去1900)
Date.UTC()函数 -- 返回date对象距世界标准时间(UTC)1970年1月1日午夜之间的毫秒数(时间戳)

日期设置类函数 

setDate() 函数 -- 设置date对象中月份的一天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setFullYear() 函数 -- 设置date对象中的年份,月份和天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setHours() 函数 -- 设置date对象的小时,分钟,秒和毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setMilliseconds() 函数 -- 设置date对象的毫秒数,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setMinutes() 函数 -- 设置date对象的分钟,秒,毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setMonth() 函数 -- 设置date对象中月份,天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setSeconds() 函数 -- 设置date对象中月份的一天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setTime() 函数 -- 使用毫秒数设置date对象,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setUTCDate() 函数 -- 设置date对象中用世界标准时间(UTC)表示的月份的一天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setUTCFullYear() 函数 -- 设置date对象中用世界标准时间(UTC)表示的年份,月份和天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setUTCHours() 函数 --- 设置date对象中用世界标准时间(UTC)表示的小时,分钟,秒和毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setUTCMilliseconds() 函数 -- 设置date对象中用世界标准时间(UTC)表示的毫秒数,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setUTCMinutes() 函数 -- 设置date对象中用世界标准时间(UTC)表示的分钟,秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setUTCMonth() 函数 -- 设置date对象中用世界标准时间(UTC)表示的月份,天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setUTCSeconds() 函数 -- 设置date对象中用世界标准时间(UTC)表示的秒,毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setYear() 函数 -- 设置date对象的年份(真实年份减去1900)

日期打印类函数

toDateString() 函数 -- 返回date对象的日期部分的字符串表示 
toGMTString() 函数 -- 返回date对象的格林威治时间(GMT)的字符串表示
toLocaleDateString函数 -- 返回date对象的日期部分的本地化字符串
toLocaleTimeString函数 -- 返回date对象的时间部分的本地化字符串
toTimeString()函数 -- 返回date对象的时间部分的字符串
toUTCString函数 -- 返回date对象的世界标准时间(UTC)的字符串表示

日期解析类函数

Date.parse() 函数 -- 解析一个日期的字符串,并返回该日期距1970年1月1日午夜之间的毫秒数(时间戳) 
JavaScript_Date函数按照字母分类
Date() 函数 -- Date对象的构造函数
getDate() 函数 -- 返回date对象中的月份中的天数(1-31)
getDay()函数 -- 返回date对象中的星期中的天数(0-6)
getFullYear() 函数 -- 返回date对象中的四位数年份
getHours()函数 -- 返回date对象中的小时数(0-23)
getMilliseconds() 函数 -- 返回date对象中的毫秒数(0-999)
getMinutes() 函数 -- 返回date对象中的分钟数(0-59)
getMonth() 函数 -- 返回date对象中的月份数(0-11)
getSeconds() 函数 -- 返回date对象中的秒数(0-59)
getTime() 函数 -- 返回date对象的时间戳表示法(毫秒表示)
getTimezoneOffset() 函数 -- 返回本地时间与用UTC表示当前日期的时间差,以分钟为单位
getUTCDate() 函数 -- 返回date对象中用世界标准时间(UTC)表示的月份中的一天(1-31)
getUTCDay() 函数 -- 返回date对象中用世界标准时间(UTC)表示的周中的一天(0-6)
getUTCFullYear() 函数 -- 返回date对象中用世界标准时间(UTC)表示的四位年份
getUTCHours() 函数 -- 返回date对象中用世界标准时间(UTC)表示的小时数(0-23)
getUTCMilliseconds() 函数 -- 返回date对象中用世界标准时间(UTC)表示的毫秒数(0-999)
getUTCMinutes() 函数 -- 返回date对象中用世界标准时间(UTC)表示的分钟数(0-59)
getUTCMonth() 函数 -- 返回date对象中用世界标准时间(UTC)表示的月份数(0-11)
getUTCSeconds() 函数 -- 返回date对象中用世界标准时间(UTC)表示的秒数(0-59)
getYear() 函数 -- 返回date对象的年份(真实年份减去1900)
Date.parse() 函数 -- 解析一个日期的字符串,并返回该日期距1970年1月1日午夜之间的毫秒数(时间戳)
setDate() 函数 -- 设置date对象中月份的一天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setFullYear() 函数 -- 设置date对象中的年份,月份和天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setHours() 函数 -- 设置date对象的小时,分钟,秒和毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setMilliseconds() 函数 -- 设置date对象的毫秒数,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setMinutes() 函数 -- 设置date对象的分钟,秒,毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setMonth() 函数 -- 设置date对象中月份,天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setSeconds() 函数 -- 设置date对象中月份的一天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setTime() 函数 -- 使用毫秒数设置date对象,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setUTCDate() 函数 -- 设置date对象中用世界标准时间(UTC)表示的月份的一天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setUTCFullYear() 函数 -- 设置date对象中用世界标准时间(UTC)表示的年份,月份和天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setUTCHours() 函数 --- 设置date对象中用世界标准时间(UTC)表示的小时,分钟,秒和毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setUTCMilliseconds() 函数 -- 设置date对象中用世界标准时间(UTC)表示的毫秒数,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setUTCMinutes() 函数 -- 设置date对象中用世界标准时间(UTC)表示的分钟,秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setUTCMonth() 函数 -- 设置date对象中用世界标准时间(UTC)表示的月份,天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setUTCSeconds() 函数 -- 设置date对象中用世界标准时间(UTC)表示的秒,毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳)
setYear() 函数 -- 设置date对象的年份(真实年份减去1900)
toDateString() 函数 -- 返回date对象的日期部分的字符串表示
toGMTString() 函数 -- 返回date对象的格林威治时间(GMT)的字符串表示
toLocaleDateString函数 -- 返回date对象的日期部分的本地化字符串
toLocaleTimeString函数 -- 返回date对象的时间部分的本地化字符串
toTimeString()函数 -- 返回date对象的时间部分的字符串
toUTCString函数 -- 返回date对象的世界标准时间(UTC)的字符串表示
Date.UTC()函数 -- 返回date对象距世界标准时间(UTC)1970年1月1日午夜之间的毫秒数(时间戳)


四、Javascript的时间戳和php的时间戳转换

js的时间戳通常是13位,php的时间戳是10位,转换函数如下:

var nowtime = (new Date).getTime();/*当前时间戳*/   
/*转换时间,计算差值*/
function comptime(beginTime,endTime){
var secondNum = parseInt((endTime-beginTime*1000)/1000);//计算时间戳差值
if(secondNum>=0&&secondNum<60){
return secondNum+'秒前';
}
else if (secondNum>=60&&secondNum<3600){
var nTime=parseInt(secondNum/60);
return nTime+'分钟前';
}
else if (secondNum>=3600&&secondNum<3600*24){
var nTime=parseInt(secondNum/3600);
return nTime+'小时前';
}
else{
var nTime = parseInt(secondNum/86400);
return nTime+'天前';
}
}
t = comptime("1642471746",nowtime);//1642471746为PHP通过ajax回传的时间戳, 是10位
console.log(t); //27分钟前


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/11043

相关推荐

js获取任意一天的0点和23:59:59时间

最近写代码时,需要获取任意一天的起始和结束时间,0点和23:59:59这两个时间的时间戳;使用了setHours() 方法;setHours() 方法用于设置指定的时间的小时字段

JS计算时间差

getTime()方法,通常我们计算时间差都是通过获取两个时间数据,然后分别使用getTime()方法返回与固定的1970 年 1 月 1 日的时间差,通过对返回毫秒数的差,换算成时间单位,得出两个时间的时间差。

js 判断当前时间是否在某一时间段

我们可以使用 jutils - JavaScript常用函数库的 isDuringDate 函数来实现,传入 beginDateStr (开始时间), endDateStr(结束时间), 当前时间是否在2018/09/17 - 2030/09/17 之间,输出 true

11个顶级 JavaScript 日历插件

日历是我们生活中重要的一部分。在当今世界,人们大多使用网络或移动日历。它们随处可见,包括在各种软件中:预订应用、旅行软件、项目管理、管理面板等。出于多种原因,用户可能需要在网站上使用日历

JS倒计时

时间戳:当前时间距离1970年1月1日一共过了多少毫秒。得到当前时间以及结束时间的时间戳,二者相减即是剩余的毫秒数,将剩余毫秒数转化成 时 分 秒 即是倒计时。

彻底弄懂GMT、UTC、时区和夏令时

格林威治时间、世界时、祖鲁时间、GMT、UTC、跨时区、夏令时,这些眼花缭乱的时间术语,我们可能都不陌生,但是真正遇到问题,可能又不那么确定,不得不再去查一查,处理完可能过段时间又忘记。今天,我们彻底来梳理一下它们。

Js实时显示系统时间

在页面找一个合适的位置添加div标签,用于显示时间;自定义JavaScript函数 showTime();在页面载入事件中每隔一秒调用一次showTime()函数,实时显示系统时间

javascript怎么把时间戳转为周几?

JavaScript中可以使用getDay()方法,getDay()方法可返回表示星期的某一天的数字,根据此数字即可得到时间戳对应周几。

一行js代码实现时间戳转时间格式

javascript时间戳转换,支持自定义格式,可以显示年,月,周,日,时,分,秒多种形式的日期和时间。推荐一个JavaScript常用函数库;在日常工作生活中,会经常用到一些日期格式化,url相关操作,浏览器类型判断,常用验证格式等等函数

古代十二时辰对照表

中国古时把一天划分为十二个时辰,每个时辰相等于现在的两小时。相传古人根据中国十二生肖中的动物的出没时间来命名各个时辰。十二时辰制。西周时就已使用。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!