1. 程式人生 > >js自定義時間日期格式和時間的轉換

js自定義時間日期格式和時間的轉換

1.日期格式根據自己需要重寫
Date.prototype.toLocaleString = function() {
return this.getFullYear() + “年” + (this.getMonth() + 1) + “月” +this.getDate() + "日 " + this.getHours() + “點” + this.getMinutes() +“分” + this.getSeconds() + “秒”;
};
var d = new Date();
console.log(d.toLocaleString());//2018年12月10日 19點8分37秒
2.有關時間的轉換

  • 第一、拿到一系列時間格式是否會自動轉換成ms

    var str_ = “2018-12/4 21:45:21”;
    var str = “2018-12/4 21:45:21”;
    var str_ = “2018-12-4 21:45:21”;
    var str = “2018/12/4 21:45:21”;
    當格式為:yyyy-mm-dd hh:mm:ss或者yyyy/mm/dd hh:mm:ss的時候,放到new Date()裡面是會接受的,其他的非-和/的就不行了
    比如說這兩種也是可以的:yyyy/mm-dd hh:mm:ss和yyyy-mm/dd hh:mm:ss
    因為new Date()這個方法是存在’-‘轉換成’/‘或者’/‘轉換成’-'的統一規範機制,比如說yyyy/mm~dd hh:mm:ss這種就不行了
    var oldTime = (new Date(str)).getTime();
    console.log(oldTime);

  • 第二、拿到ms格式是否會自動轉換成標準格式

    //ms的定義是參照1970年1月1日到現在所需要的時間
    var ms_value = 1412222224009;
    var cdate = new Date(ms_value);
    console.log(cdate);//輸出:Thu Oct 02 2014 11:57:04 GMT+0800 (中國標準時間)
    //那麼要轉換成自己想要的格式的話就需要自定義轉化啦
    3.更加隨意的自定義轉化
    如果說第一種改變原型的方法使用的很順手的話,那麼下面這個方法可以說是靈活到爆炸。自定義格式轉化函式,這個可以看你自己的想法去隨意改變格式(相對更適用在個性化的領域,公共的話建議用前面的方法1)

function dateFrom(form,date)   
{ 
  var o = {   
    "M+" : date.getMonth()+1,                 //月份
    "d+" : date.getDate(),                    //日
    "h+" : date.getHours(),                   //小時
    "m+" : date.getMinutes(),                 //分
    "s+" : date.getSeconds(),                 //秒
    "S"  : date.getMilliseconds()             //毫秒
  };   
  if(/(y+)/.test(form))   
    form=form.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));   
  for(var k in o)   
    if(new RegExp("("+ k +")").test(form))   
  form= form.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));   
  return form;   
} 
var setdate = new Date(1543500000000);
console.log(dateFrom("yyyy/MM-dd hh:mm:ss",setdate));
//2018/11-29 22:00:00

這樣的話輸出格式就是各位客官說了算啦。
希望這個分享能給大家帶來一點點幫助,喜歡的可以點個贊喲!麼麼噠