JS时间格式和时间戳的相互转换
时间戳转化为日期的方式
var timestamp = 1527521052; var newDate = new Date(); newDate.setTime(timestamp * 1000); // Mon May 28 2018 console.log(newDate.toDateString()); // Mon, 28 May 2018 15:24:12 GMT console.log(newDate.toGMTString()); // 2018-05-28T15:24:12.000Z console.log(newDate.toISOString()); // 2018-05-28T15:24:12.000Z console.log(newDate.toJSON()); // 2018/5/28 console.log(newDate.toLocaleDateString()); // 2018/5/28 下午11:24:12 console.log(newDate.toLocaleString()); // 下午11:24:12 console.log(newDate.toLocaleTimeString()); // Mon May 28 2018 23:24:12 GMT+0800 (中国标准时间) console.log(newDate.toString()); // 23:24:12 GMT+0800 (中国标准时间) console.log(newDate.toTimeString()); // Mon, 28 May 2018 15:24:12 GMT console.log(newDate.toUTCString());
1.JS获取当前时间( 年-月-日 时:分:秒):
function getNowFormatDate() {//获取当前时间 var date = new Date(); var seperator1 = "-"; var seperator2 = ":"; var month = date.getMonth() + 1<10? "0"+(date.getMonth() + 1):date.getMonth() + 1; var strDate = date.getDate()<10? "0" + date.getDate():date.getDate(); var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate + " " + date.getHours() + seperator2 + date.getMinutes() + seperator2 + date.getSeconds(); return currentdate; }
2.JS获取当前时间戳的方法
//方法一 var timestamp = (new Date()).getTime(); console.log(timestamp); //1495302061441 //方法二 var timestamp2 = (new Date()).valueOf(); console.log(timestamp2); //1495302061447 //方法三 var timestamp3 = Date.parse(new Date()); console.log(timestamp3);//1495302061000 第一种和第二种是获取了当前毫秒的时间戳 最后一种获取的时间戳是把毫秒改成000显示
3.时间戳转化成时间格式
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var o=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Date.prototype.Format=function(e){var t="";switch(this.getDay()){case 0:t="星期日";break;case 1:t="星期一";break;case 2:t="星期二";break;case 3:t="星期三";break;case 4:t="星期四";break;case 5:t="星期五";break;case 6:t="星期六"}var n={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),w:t};for(var r in/(y+)/.test(e)&&(e=e.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length))),n)new RegExp("("+r+")").test(e)&&(e=e.replace(RegExp.$1,1==RegExp.$1.length?n[r]:("00"+n[r]).substr((""+n[r]).length)));return e}}return r(e,[{key:"convert",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"y-m-d h:m:s";return"y-m-d h:m:s"==t?new Date(e).Format("yyyy-MM-dd hh:mm:ss"):"y-m-d"==t?new Date(e).Format("yyyy-MM-dd"):new Date(e).Format(t)}},{key:"getAppointDate",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments[2],r=new Date,o=this.convert(r,n);if("w"==e){var a=new Date(r-6048e5*t);o=this.convert(a,n)}else"m"==e?(r.setMonth(r.getMonth()-t),o=this.convert(r,n)):"y"==e&&(r.setYear(r.getFullYear()-t),o=this.convert(r,n));return o}}]),e}();window.dateConvert=o}]); // 调用构造函数 let DC = window.dateConvert; // 实例化 let dateFun = new DC() // 常用方法的简写 let dateVal1 = dateFun.convert(new Date(),'y-m-d');//2019-05-23 let dateVal2 = dateFun.convert(new Date(),'y-m-d h:m:s');//2019-05-23 17:17:42 // 常规方法示例 let dateVal3 = dateFun.convert(1323122444323,'yyyy-MM-dd hh:mm:ss w');//2011-12-06 06:00:44 星期二 let dateVal4 = dateFun.convert(new Date(),'yyyy-MM-dd hh:mm:ss w');//2019-05-23 17:17:42 星期四 let dateVal5 = dateFun.convert(new Date(),'yyyy-MM-dd hh:mm:ss');//2019-05-23 17:17:42 let dateVal6 = dateFun.convert(new Date(),'yyyy-MM-dd');//2019-05-23 let dateVal7 = dateFun.convert(new Date(),'w');//星期四 let dateVal8 = dateFun.convert(new Date(),'MM');//05月 let dateVal9 = dateFun.convert(new Date(),'yyyy');//年份 console.log(dateVal1);
console.log(dateVal2);
console.log(dateVal3);
console.log(dateVal4);
console.log(dateVal5);
console.log(dateVal6);
console.log(dateVal7);
console.log(dateVal8);
console.log(dateVal9);
// 时间设置
function getLocalTime(i) {
if (typeof i !== "number") {
return new Date();
}
var d = new Date();
var len = d.getTime();
var offset = d.getTimezoneOffset() * 60000;
var utcTime = len + offset;
return new Date(utcTime + 3600000 * i);
}
var timezone = -2; // 时区 : 东区时区1~12 西区时区-1~-12
var date;
date = getLocalTime(timezone).toString().split("GMT+")[0].toString();
$("#showdate").html(date);
let dateVal2 = dateFun.convert(date,'y-m-d h:m:s');
console.log(dateVal2)
4.比对时间大小
//时间大小比对 function checkDate(date1, date2) { var oDate1 = new Date(date1); var oDate2 = new Date(date2); if (oDate1.getTime() >= oDate2.getTime()) { return false; } else { return true; } } console.log(checkDate('2018-09-10 11:12:12', '2019-12-15 12:12:12')) //ture
5.校验时间格式
//验证时间格式 function strDateTime(str) { var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; var r = str.match(reg); if (r == null) return false; var d = new Date(r[1], r[3] - 1, r[4], r[5], r[6], r[7]); return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4] && d.getHours() == r[5] && d.getMinutes() == r[6] && d.getSeconds() == r[7]); }
6.时间转换时间戳
// 也很简单 function timestamp(strtime){ var date = new Date(strtime); //传入一个时间格式,如果不传入就是获取现在的时间了,这样做不兼容火狐。 // Date()参数形式有7种 // new Date("month dd,yyyy hh:mm:ss");=>new Date("September 16,2016 14:15:05"); // new Date("month dd,yyyy");=>new Date("September 16,2016"); // new Date("yyyy/MM/dd hh:mm:ss");=>new Date("2016/09/16 14:15:05"); // new Date("yyyy/MM/dd");=>new Date("2016/09/16"); // new Date(yyyy,mth,dd,hh,mm,ss);=>new Date(2016,8,16,14,15,5); => 月份从0~11 // new Date(yyyy,mth,dd);=>new Date(2016,8,16); // new Date(ms);=>new Date(1474006780); // 可以这样做 var date = new Date(strtime.replace(/-/g, '/')); // 有三种方式获取,在后面会讲到三种方式的区别 time1 = date.getTime();//精确到毫秒:1398250549123 time2 = date.valueOf();//精确到毫秒:1398250549123 time3 = Date.parse(date);//只能精确到秒,毫秒将用0来代替:1398250549000 console.log(time1,time2,time3)//1398250549012 1398250549012 1398250549000 return time1; } console.log(timestamp('2014-04-23 18:55:49:12'))//1398250549012
7.new Date()转时间格式(yyyy-MM-dd hh:mm:ss格式,简单版)
Date.prototype.format = function(fmt) { var o = { "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+)/.test(fmt)) { fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); } for(var k in o) { if(new RegExp("("+ k +")").test(fmt)){ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); } } return fmt; } var times = new Date('Fri May 31 2019 11:51:47 ').format("yyyy-MM-dd hh:mm:ss"); console.log(times)//2019-05-31 11:51:47
8.js获取服务器当前时间,而非系统时间
Date.prototype.format = function(fmt) { 2 var o = { "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+)/.test(fmt)) { fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); } for(var k in o) { if(new RegExp("("+ k +")").test(fmt)){ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); } } return fmt; } function getServerDate(){ return new Date($.ajax({async: false}).getResponseHeader("Date")); } console.log(getServerDate()); function getLocalTime(i) { if (typeof i !== "number") { return new Date(); } var d = getServerDate(); var len = d.getTime(); var offset = d.getTimezoneOffset() * 60000; var utcTime = len + offset; return new Date(utcTime + 3600000 * i); } /* **@parmas** */ function eachAreaTime(Tzone){ var timezone = Tzone; // 时区 : 东区时区1~12 西区时区-1~-12 var date,localTime; date = getLocalTime(timezone).toString().split("GMT+")[0].toString(); localTime =new Date(date).format("yyyy-MM-dd hh:mm:ss");//如果是mac系统下兼容safari浏览器,最好改为:format("yyyy/MM/dd hh:mm:ss") return localTime; } console.log('北京,菲律宾,马来西亚,台湾时间',eachAreaTime(8)); console.log('印度时间',eachAreaTime(5.5)); console.log('印尼,泰国,越南时间',eachAreaTime(7))
Fri May 31 2019 23:24:49 GMT+0800 (中国标准时间)
VM311:48 北京,菲律宾,马来西亚,台湾时间 2019-05-31 23:24:49
VM311:49 印度时间 2019-05-31 20:54:49
VM311:50 印尼,泰国,越南时间 2019-05-31 22:24:49