javascript 日期工具匯總
let Utils = { /** * 是否為閆年 * @return {Boolse} true|false */ isLeapYear: function(y) { return (y % 4 == 0 && y % 100 != 0) || y % 400 == 0; }, /** * 返回星期數(shù) * @return {Number} */ getWhatDay: function(year, month, day) { let date = new Date(year + '/' + month + '/' + day); let index = date.getDay(); let dayNames = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']; return dayNames[index]; }, /** * 返回星期數(shù) * @return {Number} */ getMonthPreDay: function(year, month) { let date = new Date(year + '/' + month + '/01'); let day = date.getDay(); if (day == 0) { day = 7; } return day; }, /** * 返回月份天數(shù) * @return {Number} */ getMonthDays: function(year, month) { if (/^0/.test(month)) { month = month.split('')[1]; } return [0, 31, this.isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; }, /** * 補(bǔ)齊數(shù)字位數(shù) * @return {string} */ getNumTwoBit: function(n) { n = Number(n); return (n > 9 ? '' : '0') + n; }, /** * 日期對(duì)象轉(zhuǎn)成字符串 * @return {string} */ date2Str: function(date, split) { if (typeof date == 'string') return date; split = split || '-'; let y = date.getFullYear(); let m = this.getNumTwoBit(date.getMonth() + 1); let d = this.getNumTwoBit(date.getDate()); return [y, m, d].join(split); }, /** * 返回日期格式字符串 * @param {Number} 0返回今天的日期、1返回明天的日期,2返回后天得日期,依次類(lèi)推 * @return {string} '2014-12-31' */ getDay: function(i) { i = i || 0; let date = new Date(); let diff = i * (1000 * 60 * 60 * 24); date = new Date(date.getTime() + diff); return this.date2Str(date); }, /** * 時(shí)間戳轉(zhuǎn)換為日期格式 * @return {String} */ timestampToDate: function(timestamp) { let date = new Date(timestamp); return date.getFullYear() + '-' + getNumTwoBit(date.getMonth() + 1) + '-' + getNumTwoBit(date.getDate()); }, /** * 時(shí)間比較 * @return {Boolean} */ compareDate: function(date1, date2) { let startTime = new Date(date1.replace('-', '/').replace('-', '/')); let endTime = new Date(date2.replace('-', '/').replace('-', '/')); if (startTime >= endTime) { return false; } return true; }, /** * 時(shí)間比較 * @return {Boolean} */ compareDateArr: function(date1, date2) { let startTime = new Date(); startTime.setFullYear(parseInt(date1[0]), parseInt(date1[1]) - 1, parseInt(date1[2])); startTime.setHours(parseInt(date1[3]), parseInt(date1[4])); let endTime = new Date(); endTime.setFullYear(parseInt(date2[0]), parseInt(date2[1]) - 1, parseInt(date2[2])); endTime.setHours(parseInt(date2[3]), parseInt(date2[4])); if (startTime >= endTime) { return false; } return true; }, /** * 時(shí)間是否相等 * @return {Boolean} */ isEqual: function(date1, date2) { let startTime = new Date(date1).getTime(); let endTime = new Date(date2).getTime(); if (startTime == endTime) { return true; } return false; }, getDateArr(str) { return [this.getYear(str), this.getMonth(str), this.getDate(str), this.getHour(str), this.getMinute(str)]; }, isDateString(str) { return /\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}/.test(str) || /^([01][0-9]|2[0-3])(:[0-5][0-9]){1,2}$/.test(str); }, getYear(value) { return this.isDateString(value) ? value.split(' ')[0].split(/-|\/|\./)[0] : value.getFullYear(); }, getMonth(value) { return this.isDateString(value) ? value.split(' ')[0].split(/-|\/|\./)[1] : value.getMonth() + 1; }, getDate(value) { return this.isDateString(value) ? value.split(' ')[0].split(/-|\/|\./)[2] : value.getDate(); }, getHour(value) { if (this.isDateString(value)) { const str = value.split(' ')[1] || '00:00:00'; return str.split(':')[0]; } return value.getHours(); }, getMinute(value) { if (this.isDateString(value)) { const str = value.split(' ')[1] || '00:00:00'; return str.split(':')[1]; } return value.getMinutes(); } }; export default Utils;
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
WEB前端開(kāi)發(fā)框架Bootstrap3 VS Foundation5
WEB前端開(kāi)發(fā)框架Bootstrap3 VS Foundation5,這篇文章主要介紹了Bootstrap3與Foundation5的五大區(qū)別,感興趣的小伙伴們可以參考一下2016-05-05JS實(shí)現(xiàn)title標(biāo)題欄文字不間斷滾動(dòng)顯示效果
這篇文章主要介紹了JS實(shí)現(xiàn)title標(biāo)題欄文字不間斷滾動(dòng)顯示效果,通過(guò)javascript時(shí)間函數(shù)定時(shí)操作動(dòng)態(tài)修改頁(yè)面元素實(shí)現(xiàn)滾動(dòng)效果,需要的朋友可以參考下2016-09-09使用javascript實(shí)現(xiàn)頁(yè)面定時(shí)跳轉(zhuǎn)總結(jié)篇
下面對(duì)使用JavaScript實(shí)現(xiàn)頁(yè)面定時(shí)跳轉(zhuǎn)做一下總結(jié),各種定時(shí)跳轉(zhuǎn)代碼記錄如下,希望對(duì)大家有所幫助2013-09-09js實(shí)現(xiàn)點(diǎn)擊文本框顯示日期選擇器特效代碼分享
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)點(diǎn)擊文本框顯示日期選擇器特效,提高了工作效率,推薦給大家,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-08-08JS前端實(shí)現(xiàn)留言板功能的方法總結(jié)
留言板的主要使用場(chǎng)景是為用戶(hù)提供一個(gè)在網(wǎng)站或應(yīng)用上留言的平臺(tái),本文主要為大家介紹了四個(gè)常見(jiàn)的前端實(shí)現(xiàn)留言板功能的方法,希望對(duì)大家有所幫助2023-11-11微信小程序?qū)崿F(xiàn)簡(jiǎn)易計(jì)算器
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)簡(jiǎn)易計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07利用用JS實(shí)現(xiàn)一個(gè)實(shí)時(shí)小鬧鐘
天我們來(lái)聊聊如何使用JS來(lái)創(chuàng)建一個(gè)實(shí)時(shí)的小鬧鐘,這個(gè)小鬧鐘十分的有趣,小伙伴們可以運(yùn)行一下,看看跟你電腦上的時(shí)間是否對(duì)的上呢,文章通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11Mock.js的安裝與使用教程(擺脫后端同學(xué)的束縛)
Mock功能可以根據(jù)接口/數(shù)據(jù)結(jié)構(gòu)定義、Mock規(guī)則配置、Mock?期望配置,自動(dòng)生成模擬數(shù)據(jù),且使用者可以根據(jù)需要靈活構(gòu)造各種結(jié)構(gòu)的接口數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Mock.js的安裝與使用的相關(guān)資料,需要的朋友可以參考下2022-08-08