new Date()日期格式處理
專案開發中遇到的格式問題:
const strTime="2018-1-1 9:10:10";
const myDate new Date(strTime);
const Y = myDate.getFullYear();
const M = myDate.getMonth()+1;
const D = myDate.getDate();
const curDay = Y + '-'+ M + '-' + D;
console.log(curDay);
輸出結果:Android系統:2018-1-1 iOS 系統:NaN-NaN-NaN
以下是一些時間格式的轉換與時間的獲取:
var myDate = new Date(); myDate.getYear(); //獲取當前年份(2位) myDate.getFullYear(); //獲取完整的年份(4位,1970-????) myDate.getMonth(); //獲取當前月份(0-11,0代表1月) // 所以獲取當前月份是myDate.getMonth()+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( ); //獲取日期與時間
JS獲取當前時間戳的方法-JavaScript 獲取當前毫秒時間戳有以下三種方法:
var timestamp =Date.parse(new Date()); 結果:1280977330000 //不推薦; 毫秒改成了000顯示
var timestamp =(new Date()).valueOf(); 結果:1280977330748 //推薦;
var timestamp=new Date().getTime(); 結果:1280977330748 //推薦;
注:js中單獨呼叫new Date(); 顯示這種格式 Mar 31 10:10:43 UTC+0800 2012;但是用new Date() 參與計算會自動轉換為從1970.1.1開始的毫秒數
將字串形式的日期轉換成日期物件
var strTime="2011-04-16"; //字串日期格式
var date= new Date(Date.parse(strTime.replace(/-/g, "/"))); //轉換成Data();
new Date() ; //引數可以為整數; 也可以為字串; 但格式必須正確
new Date(2009,1,1); //正確
new Date("2009/1/1"); //正確
new Date("2009-1-1"); //錯誤
new Date( year, month, date, hrs, min, sec) 按給定的引數建立一日期物件
引數說明:
year的值為:需設定的年份-1900。例如需設定的年份是1997則year的值應為97,即1997-1900的結果。所以Date中可設定 的年份最小為1900;
month的值域為0~11,0代表1月,11表代表12月;
date的值域在1~31之間;
hrs的值域在0~23之間。從午夜到次日凌晨1點間hrs=0,從中午到下午1點間hrs=12;
min和sec的值域在0~59之間。
例 Date day=new Date(11,3,4);
//day中的時間為:04-Apr-11 12:00:00 AM
另外,還可以給出不正確的引數。
例 設定時間為1910年2月30日,它將被解釋成3月2日。
Date day=new Date(10,1,30,10,12,34);
System.out.println("Day's date is:"+day);
//列印結果為:Day's date is:Web Mar 02 10:13:34 GMT+08:00 1910
--------------------------------------------------------------------------------------------------
1.日期格式轉為日期標準字串:2015-03-19
var formatDate = function (date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? '0' + m : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
return y + '-' + m + '-' + d;
};
2.js方法返回值:2015-03-19 12:00:00
var formatDateTime = function (date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
h=h < 10 ? ('0' + h) : h;
var minute = date.getMinutes();
minute = minute < 10 ? ('0' + minute) : minute;
var second=date.getSeconds();
second=second < 10 ? ('0' + second) : second;
return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second;
};
呼叫:formatDate(Date()) formatDate(Date())
3.時間戳轉為日期格式
//時間戳轉日期格式
var formatDateTime3 = function(time, format){
var t = new Date(time);
var tf = function(i){return (i < 10 ? '0' : '') + i};
return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function(a){
switch(a){
case 'yyyy':
return tf(t.getFullYear());
break;
case 'MM':
return tf(t.getMonth() + 1);
break;
case 'mm':
return tf(t.getMinutes());
break;
case 'dd':
return tf(t.getDate());
break;
case 'HH':
return tf(t.getHours());
break;
case 'ss':
return tf(t.getSeconds());
break;
}
})
};
4.時間格式字串轉為時間戳(毫秒)
var time1=‘2016-01-01 17:22:37’;
var date=new Date(time1.replace(/-/g, '/')); //開始時間
var time2=date.getTime();
如何將2015-03-12 12:00 轉換成標準時間()?
Thu Mar 19 2015 12:00:00 GMT+0800 (中國標準時間)
var parserDate = function (date) {
var t = Date.parse(date);
if (!isNaN(t)) {
return new Date(Date.parse(date.replace(/-/g, "/")));
} else {
return new Date();
}
};
js方法返回值:Thu Mar 19 2015 12:00:00 GMT+0800 (中國標準時間)
5.判斷時間間隔不超過24個小時
var date1=new Date("2004/09/16 20:08:00");
var date2=new Date("2004/09/17 20:08:00");
var date3=(date2.getTime()-date1.getTime())/1000; //相差秒數
if(date3>60*60*24*1000){
alert("開始時間與結束時間間隔大於24小時!");
return false; }