摘要:中有很多非常好用的日期操作庫(kù),如但是平常的項(xiàng)目用的的方法有限,未免有些冗余,特提取出比較常用的一些方法有些人可能會(huì)覺(jué)得的方式在方法的擴(kuò)展中更實(shí)用些,確實(shí)如此。
github中有很多非常好用的日期操作庫(kù),如moment.js;但是平常的項(xiàng)目用的的方法有限,未免有些冗余,特提取出比較常用的一些方法
有些人可能會(huì)覺(jué)得Date.prototype.的方式在方法的擴(kuò)展中更實(shí)用些,確實(shí)如此。本中都是多帶帶拉出來(lái)的方法,使用者可自行組裝。
日期格式化/** 日期格式化 * @param {Number String Date} * @param {String} "YYYY-MM-DD HH:mm:ss EEE" 年(Y)、月(M)、日(D)、12小時(shí)(h)、24小時(shí)(H)、分(m)、秒(s)、毫秒(S)、周(E)、季度(q) * @return {String} * @example XDate.format(new Date(), "YYYY-MM-DD") ==> 2017-08-23 */ XDate.format = function(date, fmt) { fmt = fmt || "YYYY-MM-DD HH:mm:ss"; if (typeof date === "string") { date = new Date(date.replace(/-/g, "/")) } if (typeof date === "number") { date = new Date(date) } var o = { "M+": date.getMonth() + 1, "D+": date.getDate(), "h+": date.getHours() % 12 === 0 ? 12 : date.getHours() % 12, "H+": date.getHours(), "m+": date.getMinutes(), "s+": date.getSeconds(), "q+": Math.floor((date.getMonth() + 3) / 3), "S": date.getMilliseconds() } var week = { "0": "u65e5", "1": "u4e00", "2": "u4e8c", "3": "u4e09", "4": "u56db", "5": "u4e94", "6": "u516d" } if (/(Y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)) } if (/(E+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "u661fu671f" : "u5468") : "") + week[date.getDay() + ""]) } for (var k in o) { if (new RegExp("(" + k + ")").test(fmt)) { fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))) } } return fmt; }閏年判斷
閏年:能被4整除但不能被100整出
/** 判斷是否為閏年 * @param {Number} yr * @return {Boolean} */ XDate.isLeapyear = function(yr) { return (yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0 }獲取某一年份的指定月份的天數(shù)
閏年的二月是個(gè)特殊值(依賴(lài)與isLeapyear函數(shù))
/** 獲取某一年份的某一月份的天數(shù) * @param {Number} year * @param {Number} month */ XDate.getMonthDays = function(year, month) { return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month-1] || (XDate.isLeapyear.call(null, year) ? 29 : 28); }獲取某個(gè)時(shí)間前/后的時(shí)間
/** 獲取某個(gè)時(shí)間相加/減后的時(shí)間 * @param {Date} date * @param {Number} num 參數(shù)為正時(shí)時(shí)間前移,為負(fù)時(shí)間后移 * @param {String} type y / m / d / h / m / s / ms */ XDate.modify = function (date, num, type) { date = this.converDate(date); if (!num) { return date; } switch (type) { case "y": date.setFullYear(+date.getFullYear() + num); break; case "m": date.setMonth(+date.getMonth() + num); break; case "d": date.setDate(+date.getDate() + num); break; case "h": date.setHours(+date.getHours() + num); break; case "m": date.setMinutes(+date.getMinutes() + num); break; case "s": date.setSeconds(+date.getSeconds() + num); break; case "ms": date.setMilliseconds(+date.getMilliseconds() + num); break; } return date; }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84856.html
摘要:前端知識(shí)點(diǎn)總結(jié)高級(jí)持續(xù)更新中字符串什么是連續(xù)存儲(chǔ)多個(gè)字符的字符數(shù)組相同下標(biāo)遍歷選取不同類(lèi)型不同不通用所有字符串都無(wú)權(quán)修改原字符串,總是返回新字符串大小寫(xiě)轉(zhuǎn)換統(tǒng)一轉(zhuǎn)大寫(xiě)統(tǒng)一轉(zhuǎn)小寫(xiě)何時(shí)不區(qū)分大小寫(xiě)時(shí),都需要先轉(zhuǎn)為一致的大小寫(xiě),再比較。 前端知識(shí)點(diǎn)總結(jié)——JS高級(jí)(持續(xù)更新中) 1.字符串 什么是: 連續(xù)存儲(chǔ)多個(gè)字符的字符數(shù)組 相同: 1. 下標(biāo) 2. .length 3. 遍歷 4....
摘要:時(shí)間格式化原型上添加獲取年份。獲取兩個(gè)日期之間的日期計(jì)算天前 1、時(shí)間格式化(Date原型上添加) Date.prototype.format = function() { var s = ; var mouth = (this.getMonth() + 1)>=10?(this.getMonth() + 1):(0+(this.getMonth() + 1)); ...
Date-Time Java SE 8發(fā)行版中引入的Date-Time包java.time提供了全面的日期和時(shí)間模型,是在JSR 310:Date and Time API下開(kāi)發(fā)的,盡管java.time基于國(guó)際標(biāo)準(zhǔn)化組織(ISO)日歷系統(tǒng),但也支持常用的全球日歷。 此課程介紹了使用基于ISO的類(lèi)來(lái)表示日期和時(shí)間以及操作日期和時(shí)間值的基本原理。 概述 時(shí)間似乎是一個(gè)簡(jiǎn)單的主題,即便是便宜的手表也能...
摘要:寫(xiě)此文的目的是為了總結(jié)在開(kāi)發(fā)中能增加我們開(kāi)發(fā)速度及能給我們帶來(lái)方便的工具與網(wǎng)站及一些小眾框架只限于簡(jiǎn)介不負(fù)責(zé)教程如有相應(yīng)的教程希望大家自薦或推薦我在這里感激不盡讓我們發(fā)現(xiàn)美并記錄它第一次寫(xiě)文章請(qǐng)多多包涵如有我沒(méi)有寫(xiě)到的但又是一些好用的工具及 寫(xiě)此文的目的是為了總結(jié)在開(kāi)發(fā)中能增加我們開(kāi)發(fā)速度及能給我們帶來(lái)方便的工具與網(wǎng)站及一些小眾框架只限于簡(jiǎn)介不負(fù)責(zé)教程如有相應(yīng)的教程希望大家自薦或推薦我...
閱讀 1122·2021-11-23 10:05
閱讀 1805·2021-11-12 10:36
閱讀 1862·2019-08-30 15:56
閱讀 1698·2019-08-29 12:32
閱讀 3056·2019-08-28 18:04
閱讀 3441·2019-08-26 12:17
閱讀 2512·2019-08-26 11:35
閱讀 1253·2019-08-23 15:11