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