js获取当前时间、获取当前时间戳、时间与时间戳互转。

1、 JavaScript 获取当前时间戳:
第一种:

var timestamp = Date.parse(new Date());
console.log(timestamp); // 1622427159000

第二种:

var timestamp = (new Date()).valueOf();
console.log(timestamp);	// 1622427218359

第三种:

new Date().getTime() ; // 1622427445085

注:第一种:获取的时间戳是把毫秒改成000显示,第二种和第三种是获取了当前毫秒的时间戳。

2、指定时间转换时间戳

// 时间格式必须为  YYYY-MM-DD HH:MM:SS  或者 YYYY-MM-DD
let start_time  = "2021-05-08 12:50:30";
new Date(start_time).getTime()  // 使用上面三种均可以实现
// 1620449430000

3、 时间戳转换时间

function format(dataString)
	{
		//dataString是整数,否则要parseInt转换
		var time = new Date(dataString);
		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<10?'0'+month:month)+'-'+(day<10?'0'+day:day)+' '+(hour<10?'0'+hour:hour)+':'+(minute<10?'0'+minute:minute)+':'+(second<10?'0'+second:second)
	}
format(1620449430000);
// "2021-05-08 12:50:30"
// 方法2  - 有ESlint校验的慎用
	const created = "2020-08-07T09:42:20Z";
	formatDate ( new Date(created ) )
  // 日期处理  
  formatDate = (date) => {
    let format = 'yyyy-MM-dd hh:mm:ss'
    const args = {
        "M+": date.getMonth() + 1,
         "d+": date.getDate(),
         "h+": date.getHours(),
         "m+": date.getMinutes(),
         "s+": date.getSeconds(),
         "q+": Math.floor((date.getMonth() + 3) / 3),  // quarter
         "S": date.getMilliseconds()
    };
    if (/(y+)/.test(format))
       format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
           for (const i in args) {
               const n = args[i];
               if (new RegExp("(" + i + ")").test(format))
                   format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? n : ("00" + n).substr(("" + n).length));
        }
    return format;
  }

4、Js获取当前日期时间及其它操作

var myDate = new Date();//获取系统当前时间
myDate.getYear(); //获取当前年份(2位)
myDate.getFullYear(); //获取完整的年份(4位,1970-????)
myDate.getMonth(); //获取当前月份(0-11,0代表1月)
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
var mytime=myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间

5、日期时间脚本库方法列表

/*
	Date.prototype.isLeapYear;	//判断闰年
	Date.prototype.Format ;	//日期格式化
	Date.prototype.DateAdd ;	//日期计算
	Date.prototype.DateDiff;	// 比较日期差
	Date.prototype.toString ;	//日期转字符串
	Date.prototype.toArray ;	//日期分割为数组
	Date.prototype.DatePart ;	//取日期的部分信息
	Date.prototype.MaxDayOfDate;	// 取日期所在月的最大天数
	Date.prototype.WeekNumOfYear;	// 判断日期所在年的第几周
	StringToDate ;	//字符串转日期型
	IsValidDate ;	//验证日期有效性
	CheckDateTime ;	//完整日期时间检查
	daysBetween ;	//日期天数差
*/

// 案例代码如下:
	// 判断闰年
Date.prototype.isLeapYear = function(){
	return (0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0)));
}
/*
	// 日期格式化
	// 格式 YYYY/yyyy/YY/yy 表示年份
	// MM/M 月份
	// W/w 星期
	// dd/DD/d/D 日期
	// hh/HH/h/H 时间
	// mm/m 分钟
	// ss/SS/s/S 秒
*/
Date.prototype.Format = function(formatStr){
	var str = formatStr;
	var Week = ['日','一','二','三','四','五','六'];
 
	str=str.replace(/yyyy|YYYY/,this.getFullYear());
	str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear() % 100).toString():0+ (this.getYear() % 100));
 
	str=str.replace(/MM/,this.getMonth()>9?this.getMonth().toString():0+ this.getMonth());
	str=str.replace(/M/g,this.getMonth());
 
	str=str.replace(/w|W/g,Week[this.getDay()]);
	 
	str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():0+ this.getDate());
	str=str.replace(/d|D/g,this.getDate());
	 
	str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():0+ this.getHours());
	str=str.replace(/h|H/g,this.getHours());
	str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():0+ this.getMinutes());
	str=str.replace(/m/g,this.getMinutes());
	 
	str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():0+ this.getSeconds());
	str=str.replace(/s|S/g,this.getSeconds());
	 
	return str;
}
 
/*
//| 求两个时间的天数差 日期格式为 YYYY-MM-dd
*/
function daysBetween(DateOne,DateTwo){
	var OneMonth = DateOne.substring(5,DateOne.lastIndexOf (-));
	var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf (-)+1);
	var OneYear = DateOne.substring(0,DateOne.indexOf (-));
	 
	var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf (-));
	var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf (-)+1);
	var TwoYear = DateTwo.substring(0,DateTwo.indexOf (-));
 
	var cha=((Date.parse(OneMonth+/'+OneDay+’/'+OneYear)- Date.parse(TwoMonth+/'+TwoDay+’/'+TwoYear))/86400000);
	return Math.abs(cha);
}
 
/*
//| 日期计算
*/
Date.prototype.DateAdd = function(strInterval, Number) {
	var dtTmp = this;
	switch (strInterval) {
		case ‘s’ :return new Date(Date.parse(dtTmp) + (1000 * Number));
		case ‘n’ :return new Date(Date.parse(dtTmp) + (60000 * Number));
		case ‘h’ :return new Date(Date.parse(dtTmp) + (3600000 * Number));
		case ‘d’ :return new Date(Date.parse(dtTmp) + (86400000 * Number));
		case ‘w’ :return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));
		case ‘q’ :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
		case ‘m’ :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
		case ‘y’ :return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
	}
}
 
/*
//| 比较日期差 dtEnd 格式为日期型或者有效日期格式字符串
*/
Date.prototype.DateDiff = function(strInterval, dtEnd) {
	var dtStart = this;
	if (typeof dtEnd == ‘string’ )//如果是字符串转换为日期型
	{
		dtEnd = StringToDate(dtEnd);
	}
	switch (strInterval) {
		case ‘s’ :return parseInt((dtEnd – dtStart) / 1000);
		case ‘n’ :return parseInt((dtEnd – dtStart) / 60000);
		case ‘h’ :return parseInt((dtEnd – dtStart) / 3600000);
		case ‘d’ :return parseInt((dtEnd – dtStart) / 86400000);
		case ‘w’ :return parseInt((dtEnd – dtStart) / (86400000 * 7));
		case ‘m’ :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12)  (dtStart.getMonth()+1);
		case ‘y’ :return dtEnd.getFullYear() – dtStart.getFullYear();
	}
}
 
/*
//| 日期输出字符串,重载了系统的toString方法
*/
Date.prototype.toString = function(showWeek){
	var myDate= this;
	var str = myDate.toLocaleDateString();
	if (showWeek){
		var Week = ['日','一','二','三','四','五','六'];
		str += ‘ 星期’ + Week[myDate.getDay()];
	}
	return str;
}
 
/*
//| 日期合法性验证
//| 格式为:YYYY-MM-DD或YYYY/MM/DD
*/
function IsValidDate(DateStr){
	var sDate=DateStr.replace(/(^\s+|\s+$)/g,); //去两边空格;
	if(sDate==) return true;
	//如果格式满足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或YYYY-(/)MM-(/)D就替换为”
	//数据库中,合法日期可以是:YYYY-MM/DD(2003-3/21),数据库会自动转换为YYYY-MM-DD格式
	var s = sDate.replace(/[\d]{ 4,4 }[\-/]{ 1 }[\d]{ 1,2 }[\-/]{ 1 }[\d]{ 1,2 }/g,);
	if (s==) //说明格式满足YYYY-MM-DD或YYYY-M-DD或YYYY-M-D或YYYY-MM-D
	{
		var t=new Date(sDate.replace(/\-/g,/'));
		var ar = sDate.split(/[-/:]/);
		if(ar[0] != t.getYear() || ar[1] != t.getMonth()+1 || ar[2] != t.getDate())
		{
//alert(‘错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。’);
			return false;
		}
	}else{
//alert(‘错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。’);
		return false;
	}
	return true;
}
 
/*
//| 日期时间检查
//| 格式为:YYYY-MM-DD HH:MM:SS
*/
function CheckDateTime(str){
	var reg = /^(\d+)-(\d{ 1,2 })-(\d{ 1,2 }) (\d{ 1,2 }):(\d{ 1,2 }):(\d{ 1,2 })$/;
	var r = str.match(reg);
	if(r==null)return false;
	r[2]=r[2]-1;
	var d= new Date(r[1],r[2],r[3],r[4],r[5],r[6]);
	if(d.getFullYear()!=r[1])return false;
	if(d.getMonth()!=r[2])return false;
	if(d.getDate()!=r[3])return false;
	if(d.getHours()!=r[4])return false;
	if(d.getMinutes()!=r[5])return false;
	if(d.getSeconds()!=r[6])return false;
	return true;
}
 
/*
//| 把日期分割成数组
*/
Date.prototype.toArray = function(){
	var myDate = this;
	var myArray = Array();
	myArray[0] = myDate.getFullYear();
	myArray[1] = myDate.getMonth();
	myArray[2] = myDate.getDate();
	myArray[3] = myDate.getHours();
	myArray[4] = myDate.getMinutes();
	myArray[5] = myDate.getSeconds();
	return myArray;
}
 
/*
//| 取得日期数据信息
//| 参数 interval 表示数据类型
//| y 年 m月 d日 w星期 ww周 h时 n分 s秒
*/
Date.prototype.DatePart = function(interval){
	var myDate = this;
	var partStr=;
	var Week = ['日','一','二','三','四','五','六'];
	switch (interval){
		case ‘y’ :partStr = myDate.getFullYear();break;
		case ‘m’ :partStr = myDate.getMonth()+1;break;
		case ‘d’ :partStr = myDate.getDate();break;
		case ‘w’ :partStr = Week[myDate.getDay()];break;
		case ‘ww’ :partStr = myDate.WeekNumOfYear();break;
		case ‘h’ :partStr = myDate.getHours();break;
		case ‘n’ :partStr = myDate.getMinutes();break;
		case ‘s’ :partStr = myDate.getSeconds();break;
	}
	return partStr;
}
 
/*
//| 取得当前日期所在月的最大天数
*/
Date.prototype.MaxDayOfDate = function(){
	var myDate = this;
	var ary = myDate.toArray();
	var date1 = (new Date(ary[0],ary[1]+1,1));
	var date2 = date1.dateAdd(1,’m',1);
	var result = dateDiff(date1.Format(‘yyyy-MM-dd’),date2.Format(‘yyyy-MM-dd’));
	return result;
}
 
/*
//| 取得当前日期所在周是一年中的第几周
*/
Date.prototype.WeekNumOfYear = function(){
	var myDate = this;
	var ary = myDate.toArray();
	var year = ary[0];
	var month = ary[1]+1;
	var day = ary[2];
	document.write(< script language=VBScript\> \n’);
	document.write(‘myDate = Datue(+month+-'+day+’-'+year+) \n’);
	document.write(‘result = DatePart(‘ww’, myDate) \n’);
	document.write(‘ \n’);
	return result;
}
 
/*
//| 字符串转成日期类型
//| 格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd
*/
function StringToDate(DateStr){
	var converted = Date.parse(DateStr);
	var myDate = new Date(converted);
	if (isNaN(myDate)){
		//var delimCahar = DateStr.indexOf(‘/’)!=-1?’/':’-';
		var arys= DateStr.split(-);
		myDate = new Date(arys[0],–arys[1],arys[2]);
	}
	return myDate;
}
 
// 若要显示:当前日期加时间(如:2009-06-12 12:00)
function CurentTime(){
	var now = new Date();
	
	var year = now.getFullYear(); //年
	var month = now.getMonth() + 1; //月
	var day = now.getDate(); //日
	 
	var hh = now.getHours(); //时
	var mm = now.getMinutes(); //分
	 
	var clock = year +-;
 
	if(month < 10)
	clock +=0;
 
	clock += month +-;
 
	if(day < 10)
	clock +=0;
	 
	clock += day + ” “;
	 
	if(hh < 10)
	clock +=0;
	 
	clock += hh +:;
	if (mm < 10) clock +=0;
	clock += mm;
	return(clock);
}

6、倒计时抽奖案例
在这里插入图片描述

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>简单易用的倒计时js代码 - 站长素材</title>
<style>
*{ margin:0; padding:0; list-style:none;}
body{ font-size:18px; text-align:center;}
.time{ height:30px; padding:200px;}
</style>
</head>
<body>
    <div class="time">
        <span id="t_d">00天</span>
        <span id="t_h">00时</span>
        <span id="t_m">00分</span>
        <span id="t_s">00秒</span>
    </div>
<script>
   function GetRTime(){
   		//双十一倒计时抽奖
       var EndTime= new Date('2018/11/11 00:00:00');
       var NowTime = new Date();
       var t =EndTime.getTime() - NowTime.getTime();
       var d=Math.floor(t/1000/60/60/24);
       var h=Math.floor(t/1000/60/60%24);
       var m=Math.floor(t/1000/60%60);
       var s=Math.floor(t/1000%60);

       document.getElementById("t_d").innerHTML = d + "天";
       document.getElementById("t_h").innerHTML = h + "时";
       document.getElementById("t_m").innerHTML = m + "分";
       document.getElementById("t_s").innerHTML = s + "秒";
   }
   setInterval(GetRTime,0);
  
</script>
</body>
</html> 

原文链接:
https://blog.csdn.net/qq_37896578/article/details/90080953?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162242671516780269858391%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162242671516780269858391&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-3-90080953.pc_search_result_control_group&utm_term=js%E8%8E%B7%E5%8F%96%E6%97%B6%E9%97%B4%E6%88%B3&spm=1018.2226.3001.4187
https://www.cnblogs.com/ShanHeDiao/p/4445012.html
https://tangce.blog.csdn.net/article/details/83787402?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control

  • 25
    点赞
  • 148
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值