tinydate.js[v0.3] 新增了字符串格式化為日期對象的函數

更新說明

  1. 加入了String類型的擴展成員 convertToDate() 可以直接將 字符串格式的日期轉換為Date對象。
  2. 加入了String類型的擴展成員 convertToTimeSpan() 可以將 字符串格式的日期轉換為TimeSpan對象。
  3. 修復了日期格式化為字符串的format函數中的bug。

tinydate.js v0.3

Date.prototype.format = function (fmt) {var o = {"M+": this.getMonth() + 1,                 //月份 "d+": this.getDate(),                    //日 "H+": this.getHours(),                   //小時 "m+": this.getMinutes(),                 //分 "s+": this.getSeconds(),                 //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "f+": this.getMilliseconds()             //毫秒 };if (/(y+)/.test(fmt)) {fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));}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;
}
//當前完整時間
Date.$nowDate = new Date().format("yyyy-MM-dd HH:mm:ss.ffff");
//獲取自定義格式的當前時間
Date.$now = function (fmt) {return new Date().format(fmt);
}
//計算時間差
Date.diff = function (sDate, eDate) {if (eDate == undefined || eDate == null)eDate = new Date();var stime = sDate.getTime();var etime = eDate.getTime();var diffTime = etime - stime;var timeSpan = new TimeSpan(diffTime);return timeSpan;
}
//添加年
Date.prototype.addYear = function (number) {this.setFullYear(this.getFullYear() + number);
}
//添加月
Date.prototype.addMonth = function (number){this.setMonth(this.getMonth()+number);
}
//添加日
Date.prototype.addDate = function (number){this.setDate(this.getDate()+number);
}
//添加小時
Date.prototype.addHours = function (number){this.setHours(this.getHours()+number);
}
//添加分
Date.prototype.addMinutes = function (number){this.setMinutes(this.getMinutes()+number);
}
//添加秒
Date.prototype.addSeconds = function (number){this.setSeconds(this.getSeconds()+number);
}
//添加毫秒
Date.prototype.addMilliseconds = function (number){this.setMilliseconds(this.getMilliseconds()+number);
}//獲得一年中第一天的日期
Date.prototype.getTheFirstDateOfTheYear = function (date) {var year, month=0, day=1;if (date == undefined || date == null) {year = this.getFullYear();}else {year = date.getFullYear();}return new Date(year, month, day);
}
//獲得一年中最后一天的日期
Date.prototype.getTheLastDateOfTheYear = function (date) {var year, month = 11, day = 31;if (date == undefined || date == null) {year = this.getFullYear();}else {year = date.getFullYear();}return new Date(year, month, day);
}
//格式化當前日期 為 時限對象
Date.prototype.timeSpan = function () {return new TimeSpan(this);
}
//時限對象
function TimeSpan() {var o = new Object();o.year = 0;//年o.month = 0;//月o.day = 0;//日o.hours = 0;//時o.minutes = 0;//分o.seconds = 0;//秒o.milliseconds = 0;//毫秒o.totalYear = 0.00;//從時間原點的年o.totalMonth = 0.00;//從時間原點到現在的月o.totalDay = 0.00;//從時間原點到現在的天o.totalHours = 0.00;//從時間原點到現在的小時o.totalMinutes = 0.00;//從時間原點到現在的分o.totalSeconds = 0.00;//從時間原點到現在的秒o.totalMilliseconds = 0.00;//從時間原點到現在的毫秒//初始化對象o.init = function (timestamp) {var odate = new Date(timestamp);o.year = odate.getFullYear();o.month = odate.getMonth() + 1;o.day = odate.getDate();o.hours = odate.getHours();o.minutes = odate.getMinutes();o.seconds = odate.getSeconds();o.milliseconds = odate.getMilliseconds();o.totalMilliseconds = timestamp;o.totalSeconds = (timestamp / 1000).toFixed(2);o.totalMinutes = (timestamp / 1000 / 60).toFixed(2);o.totalHours = (timestamp / 1000 / 60 / 60).toFixed(2);o.totalDay = (timestamp / 1000 / 60 / 60 / 24).toFixed(2);o.totalMonth = o.year * 12;o.totalYear = o.year;}//無參則返回空對象if (arguments.length == 0) {}else if (typeof (arguments[0]) === "string") {o.init(new Date(arguments[0]));}else if (typeof (arguments[0]) === "number") {o.init(arguments[0]);} else if (typeof(arguments[0]) === "object") {o.init(arguments[0]);}return o;
}//字符串轉換為Date
String.prototype.convertToDate = function () {return new Date(Date.parse(this.replace(/-/g, "/")));
}//字符串轉換為TimeSpan
String.prototype.convertToTimeSpan = function () {return new TimeSpan(new Date(Date.parse(this.replace(/-/g, "/"))));
}

點此下載: tinydate_0.3.js


轉載于:https://www.cnblogs.com/nozer1993/p/9198941.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452274.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452274.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452274.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

面向對象方法學的四個要點

面向對象方法學的要點面向對象方法學的出發點和基本原則,是盡可能模擬人類習慣的思維方式,使開發軟件的方法與過程盡可能接近人類認識世界解決問題的方法與過程,也就是使描述問題的問題空間(也稱為問題域)與實現解法的解空間(也稱為求解域)在…

學成在線--4.CMS頁面管理開發(新增頁面)

文章目錄1.定義新增頁面接口1)在model工程中定義響應模型2)在api工程中添加接口2.新增頁面服務端開發1)Dao2)Service3)Controller3.新增頁面前端開發1)創建page_add.vue2)配置路由3)…

嵌套For循環性能優化

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。1 案例描述某日,在JavaEye上看到一道面試題,題目是這樣的:請對以下的代碼進行優化 Java代碼 for (int …

docker-ce安裝

1、安裝 sudo yum -y install docker 2、加入開機自啟systemctl enable docker轉載于:https://www.cnblogs.com/runnerjack/p/8618524.html

python-study-17

復習 上節課復習1、什么是模塊模塊是一系列功能的集合體2、為何用模塊拿來(內置或第三方的模塊)主義,提升開發效率自定義模塊可以讓程序的各部分組件重用模塊內的功能3、如何用模塊大前提:模塊是被執行文件導入使用,模…

面向對象方法學的優點

1.與人類習慣的思維方法一致面向對象的軟件技術以對象為核心,用這種技術開發出的軟件系統由對象組成。對象是由描述內部狀態表示靜態屬性的數據,以及可以對這些數據施加的操作(對象的動態行為),封裝在一起所構成的統一體。面向對象的設計方法…

如何學好C語言

我相信,這可能是很多朋友的問題,我以前也有這樣的感覺,編程編到一定的時候,發現能力到了瓶頸,既不深,也不扎實,半吊子。比如:你長期地使用Java和.NET ,這些有虛擬機的語言…

學成在線--5.CMS頁面管理開發(修改頁面)

文章目錄1.修改頁面流程1)前端邏輯2)后端邏輯2.修改頁面接口定義3.后端開發--Dao4.后端開發--Service5.后端開發--Controller1)根據id查詢頁面2)保存頁面信息6.前端開發--頁面處理流程7.前端開發--編寫page_edit.vue8.前端開發--配…

在樹莓派上播放音頻

https://blog.csdn.net/qinxiandiqi/article/details/39155593轉載于:https://www.cnblogs.com/Baronboy/p/9206164.html

Map四種獲取key和value值的方法,以及對map中的元素排序

2019獨角獸企業重金招聘Python工程師標準>>> 獲取map的值主要有四種方法,這四種方法又分為兩類: 一類是調用map.keySet()方法來獲取key和value的值, 另一類則是通過map.entrySet()方法來取值, 兩者的區別在于,前者主要…

配置Oracle Instant Client環境

1.配置Oracle Instant Client環境 到Oracle官網下載Oracle Instant Client,注意選擇x86平臺,Toad只認32位的Oracle Instant Client。至于版本號,沒有特別要求,版本向下兼容。 桌面上,右鍵點“我的電腦”,選…

學成在線--6.CMS頁面管理開發(刪除頁面)

文章目錄0.刪除用戶邏輯1.刪除頁面接口定義2.后端開發--Dao3.后端開發--Service4.后端開發--controller5.前端開發--page_list.vue添加刪除按鈕6.前端開發--page_list.vue編寫刪除事件7.后端開發--Api方法定義Api方法0.刪除用戶邏輯 1)前端邏輯 (1&…

諾基亞是“不跟隨”還是跟不上?

在Android和iPhone為主流的環境下,諾基亞用“不跟隨”的口號表明自己欲保持個性,但是否也意味著其固步自封,跟不上時代? 5年市值縮水超900億歐元,全球業績連續4個季度虧損,更為可怕的是,被視為…

HTTP 協議(詳解)

HTTP協議簡介:HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用于萬維網(www.world wide web)服務器與本地瀏覽器之間傳輸文本的傳輸協議。 http請求協議與相應協議HTTP協議包含瀏覽器發送數據到服務器需要遵循…

對象的特點

對象有如下一些基本特點。(1) 以數據為中心。操作圍繞對其數據所需要做的處理來設置,不設置與這些數據無關的操作,而且操作的結果往往與當時所處的狀態 (數據的值)有關。 (2) 對象是主動的。它是進行處理的主體。不能從外部直接加工它的私有數據&a…

React Native集成Redux框架講解與應用

學過React Native的都知道,RN的UI是根據相應組件的state進行render的,而頁面又是由大大小小的組件構成,導致每個組件都必須維護自身的一套狀態,因此當頁面復雜化的時候,管理state會相當吃力的。而redux提供了一套機制來…

【筆試記錄】2021/3/10阿里

阿里20210310春招筆試記錄-Python解題 第一題 問題描述: 小偷從出發點按指定方向出發,除非遇到墻或超出城市必須轉方向,不然只能直走。城市大小m*n。輸入描述: 1. 第1行,三個數字m n k;m*n表示城市大小&…

Spring mvc中@RequestMapping 6個基本用法小結

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 小結下spring mvc中的RequestMapping的用法。 1)最基本的,方法級別上應用,例如: …

學成在線--7.CMS頁面管理開發(異常處理)

文章目錄1.異常處理的問題分析2.異常處理流程3.可預知異常處理1.自定義異常類2.異常拋出類3.異常捕獲類4.異常處理測試1)定義錯誤代碼2)異常處理測試4.不可預知異常處理1.定義異常捕獲方法1)異常拋出測試2)異常捕獲方法1.異常處理…

函數重載與運算符重載

有兩種重載:函數重載是指在同一作用域內的若干個參數特征不同的函數可以使用相同的函數名字;運算符重載是指同一個運算符可以施加于不同類型的操作數上面。就是對已有的運算符重新進行定義,賦予其另一種功能,以適應不同的數據類型…