1.時間的獲取
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( ); //獲取日期與時間
2.獲取時間戳
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開始的毫秒數
3.將字符串形式的日期轉換成日期對象展示
var strTime="2019-02-01"; //字符串日期格式
var date= new Date(Date.parse(strTime.replace(/-/g, "/"))); //轉換成Data();
new Date() ; //參數可以為整數; 也可以為字符串; 但格式必須正確 new Date(2019,1,1); //正確 new Date("2019/1/1"); //正確 new Date("2019-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
4.日期格式轉為日期標准字符串:年月日
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; };
5.js方法返回值:年月日 時分秒
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(new Date())
6.獲取固定時間的時間戳,獲取當前時間看上面2
let data ="2019-02-01"
var timestamp1 = Date.parse(new Date(data));//轉成的時間戳是年月日 時分秒 把毫秒改成000顯示
var timestamp2 = (new Date(data)).valueOf();//轉成的時間戳是年月日 時分秒毫秒
var timestamp3 = new Date(data).getTime();//轉成的時間戳是年月日 時分秒毫秒
7.時間戳轉成日期
function format(shijian){ let date = new Date(shijian) 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; },
format(時間戳)
8.封裝時間日期格式的轉化
timeStamp:時間戳,
type :根據自己的需要設置格式: Y-M-D Y-M-D H 等等
auto :為false是轉化格式,為true是輸入之前到今天的此時時間
formatDate(timeStamp, type = 'Y-M-D H:I:S', auto = true) { let time = (timeStamp + '').length === 10 ? new Date(parseInt(timeStamp) * 1000) : new Date(parseInt(timeStamp)); let _year = time.getFullYear(); let _month = (time.getMonth() + 1) < 10 ? '0' + (time.getMonth() + 1) : (time.getMonth() + 1); let _date = time.getDate() < 10 ? '0' + time.getDate() : time.getDate(); let _hours = time.getHours() < 10 ? '0' + time.getHours() : time.getHours(); let _minutes = time.getMinutes() < 10 ? '0' + time.getMinutes() : time.getMinutes(); let _secconds = time.getSeconds() < 10 ? '0' + time.getSeconds() : time.getSeconds(); let formatTime = ''; let distinctTime = new Date().getTime() - time.getTime(); if (auto) { if (distinctTime <= (1 * 60 * 1000)) { // console.log('一分鍾以內,以秒數計算');
let _s = Math.floor((distinctTime / 1000) % 60); formatTime = _s + '秒前'; } else if (distinctTime <= (1 * 3600 * 1000)) { // console.log('一小時以內,以分鍾計算');
let _m = Math.floor((distinctTime / (60 * 1000)) % 60); formatTime = _m + '分鍾前'; } else if (distinctTime <= (24 * 3600 * 1000)) { // console.log('一天以內,以小時計算');
let _h = Math.floor((distinctTime / (60 * 60 * 1000)) % 24); formatTime = _h + '小時前'; } else if (distinctTime <= (30 * 24 * 3600 * 1000)) { let _d = Math.floor((distinctTime / (24 * 60 * 60 * 1000)) % 30); formatTime = _d + '天前'; // console.log('30天以內,以天數計算');
} else { // 30天以外只顯示年月日
formatTime = _year + '-' + _month + '-' + _date; } } else { switch (type) { case 'Y-M-D H:I:S': formatTime = _year + '-' + _month + '-' + _date + ' ' + _hours + ':' + _minutes + ':' + _secconds; break; case 'Y-M-D H:I:S zh': formatTime = _year + '年' + _month + '月' + _date + '日 ' + _hours + ':' + _minutes + ':' + _secconds; break; case 'Y-M-D H:I': formatTime = _year + '-' + _month + '-' + _date + ' ' + _hours + ':' + _minutes; break; case 'Y-M-D H': formatTime = _year + '-' + _month + '-' + _date + ' ' + _hours; break; case 'Y-M-D': formatTime = _year + '-' + _month + '-' + _date; break; case 'Y-M-D zh': formatTime = _year + '年' + _month + '月' + _date + '日'; break; case 'Y-M': formatTime = _year + '-' + _month; break; case 'Y': formatTime = _year; break; case 'M': formatTime = _month; break; case 'D': formatTime = _date; break; case 'H': formatTime = _hours; break; case 'I': formatTime = _minutes; break; case 'S': formatTime = _secconds; break; default: formatTime = _year + '-' + _month + '-' + _date + ' ' + _hours + ':' + _minutes + ':' + _secconds; break; } } // 返回格式化的日期字符串
return formatTime; },
以上的內容是自己經過驗證,如有問題大家可以可以留言
參考網址:https://blog.csdn.net/qq_39759115/article/details/78893853,https://blog.csdn.net/qq_39759115/article/details/78893853