JS时间格式和时间戳的相互转换

时间:2022-06-10 06:00:29

时间戳转化为日期的方式

var timestamp = ;

var newDate = new Date();

newDate.setTime(timestamp * );

// 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() + <? ""+(date.getMonth() + ):date.getMonth() + ;
  var strDate = date.getDate()<? "" + 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);// 第一种和第二种是获取了当前毫秒的时间戳
最后一种获取的时间戳是把毫秒改成000显示

3.时间戳转化成时间格式

!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!})},n.t=function(e,t){if(&t&&(e=n(e)),&t)return e;if(&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!,value:e}),&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=)}([function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!,r.configurable=!,"value"in r&&(r.writable=!),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 :t="星期日";break;case :t="星期一";break;case :t="星期二";break;case :t="星期三";break;case :t="星期四";break;case :t="星期五";break;case :t="星期六"}var n={"M+":this.getMonth()+,"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.$,(this.getFullYear()+"").substr(-RegExp.$.length))),n)new RegExp("("+r+")").test(e)&&(e=e.replace(RegExp.$,==RegExp.$.length?n[r]:(""+n[r]).substr((""+n[r]).length)));return e}}return r(e,[{key:"convert",value:function(e){var t=arguments.length>&&void !==arguments[]?arguments[]:"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>&&void !==arguments[]?arguments[]:,n=arguments[],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(,'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{,})(-|\/)(\d{,})\(\d{,}) (\d{,}):(\d{,}):(\d{,})$/;
var r = str.match(reg);
if (r == null) return false;
var d = new Date(r[], r[] - , r[], r[], r[], r[]);
return (d.getFullYear() == r[] && (d.getMonth() + ) == r[] && d.getDate() == r[] && d.getHours() == r[] && d.getMinutes() == r[] && d.getSeconds() == r[]);
}

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'))//

7.new Date()转时间格式(yyyy-MM-dd hh:mm:ss格式,简单版)

Date.prototype.format = function(fmt) {
var o = {
"M+" : this.getMonth()+, //月份
"d+" : this.getDate(), //日
"h+" : this.getHours(), //小时
"m+" : this.getMinutes(), //分
"s+" : this.getSeconds(), //秒
"q+" : Math.floor((this.getMonth()+)/), //季度
"S" : this.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt)) {
fmt=fmt.replace(RegExp.$, (this.getFullYear()+"").substr( - RegExp.$.length));
}
for(var k in o) {
if(new RegExp("("+ k +")").test(fmt)){
fmt = fmt.replace(RegExp.$, (RegExp.$.length==) ? (o[k]) : ((""+ 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) {
var o = {
"M+" : this.getMonth()+, //月份
"d+" : this.getDate(), //日
"h+" : this.getHours(), //小时
"m+" : this.getMinutes(), //分
"s+" : this.getSeconds(), //秒
"q+" : Math.floor((this.getMonth()+)/), //季度
"S" : this.getMilliseconds() //毫秒
};
if(/(y+)/.test(fmt)) {
fmt=fmt.replace(RegExp.$, (this.getFullYear()+"").substr( - RegExp.$.length));
}
for(var k in o) {
if(new RegExp("("+ k +")").test(fmt)){
fmt = fmt.replace(RegExp.$, (RegExp.$.length==) ? (o[k]) : ((""+ 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() * ;
    var utcTime = len + offset;
    return new Date(utcTime + * i);
} /*
**@parmas** */
function eachAreaTime(Tzone){
 var timezone = Tzone; // 时区 : 东区时区1~12 西区时区-1~-12
    var date,localTime;
    date = getLocalTime(timezone).toString().split("GMT+")[].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());
console.log('印度时间',eachAreaTime(5.5));
console.log('印尼,泰国,越南时间',eachAreaTime())

  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