摘要:中有很多非常好用的日期操作庫,如但是平常的項目用的的方法有限,未免有些冗余,特提取出比較常用的一些方法有些人可能會覺得的方式在方法的擴展中更實用些,確實如此。
github中有很多非常好用的日期操作庫,如moment.js;但是平常的項目用的的方法有限,未免有些冗余,特提取出比較常用的一些方法
有些人可能會覺得Date.prototype.的方式在方法的擴展中更實用些,確實如此。本中都是多帶帶拉出來的方法,使用者可自行組裝。
日期格式化/** 日期格式化 * @param {Number String Date} * @param {String} "YYYY-MM-DD HH:mm:ss EEE" 年(Y)、月(M)、日(D)、12小時(h)、24小時(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 }獲取某一年份的指定月份的天數
閏年的二月是個特殊值(依賴與isLeapyear函數)
/** 獲取某一年份的某一月份的天數 * @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); }獲取某個時間前/后的時間
/** 獲取某個時間相加/減后的時間 * @param {Date} date * @param {Number} num 參數為正時時間前移,為負時間后移 * @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; }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84856.html
摘要:前端知識點總結高級持續更新中字符串什么是連續存儲多個字符的字符數組相同下標遍歷選取不同類型不同不通用所有字符串都無權修改原字符串,總是返回新字符串大小寫轉換統一轉大寫統一轉小寫何時不區分大小寫時,都需要先轉為一致的大小寫,再比較。 前端知識點總結——JS高級(持續更新中) 1.字符串 什么是: 連續存儲多個字符的字符數組 相同: 1. 下標 2. .length 3. 遍歷 4....
摘要:時間格式化原型上添加獲取年份。獲取兩個日期之間的日期計算天前 1、時間格式化(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發行版中引入的Date-Time包java.time提供了全面的日期和時間模型,是在JSR 310:Date and Time API下開發的,盡管java.time基于國際標準化組織(ISO)日歷系統,但也支持常用的全球日歷。 此課程介紹了使用基于ISO的類來表示日期和時間以及操作日期和時間值的基本原理。 概述 時間似乎是一個簡單的主題,即便是便宜的手表也能...
摘要:寫此文的目的是為了總結在開發中能增加我們開發速度及能給我們帶來方便的工具與網站及一些小眾框架只限于簡介不負責教程如有相應的教程希望大家自薦或推薦我在這里感激不盡讓我們發現美并記錄它第一次寫文章請多多包涵如有我沒有寫到的但又是一些好用的工具及 寫此文的目的是為了總結在開發中能增加我們開發速度及能給我們帶來方便的工具與網站及一些小眾框架只限于簡介不負責教程如有相應的教程希望大家自薦或推薦我...
閱讀 1107·2021-11-23 10:05
閱讀 1785·2021-11-12 10:36
閱讀 1853·2019-08-30 15:56
閱讀 1685·2019-08-29 12:32
閱讀 3043·2019-08-28 18:04
閱讀 3428·2019-08-26 12:17
閱讀 2502·2019-08-26 11:35
閱讀 1240·2019-08-23 15:11