自己封裝的data日期工具類
阿新 • • 發佈:2018-04-28
tar gets back rtt 負數 tint inner clear obj
HTML頁面的調用
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <script src="js/DateUntils.js" type="text/javascript" charset="utf-8"></script> <body> <div id="strTime"> </div> </body> <script type="text/javascript"> // 獲取當前時間的日(年-月-日 時:分:秒) console.log(dateUntils.datetime()); // 獲取當前時間的(年-月-日) console.log(dateUntils.date()); // 獲取當前時間的( 時:分:秒) console.log(dateUntils.time()); console.log("---------") // 獲取指定時間的詳細信息 dateUntils.name = "2015-05-11"; // dateUntils.name = new Date(); console.log(dateUntils.datetime()); console.log(dateUntils.date()); console.log(dateUntils.time()); console.log("---------") /* * 當前時間 * num 默認為0;獲取的是今天日期*/ console.log(dateUntils.appointedDay()); // 獲取五天前的日期 dateUntils.num = "-5"; console.log(dateUntils.appointedDay()); //獲取五天後的日期 dateUntils.num = "5"; console.log(dateUntils.appointedDay()); console.log("-------------"); /** * 活動日期 */ // 設置開始時間 dateUntils.startDate = "2018-02-15"; // 設置結束時間 dateUntils.endDate = "2018-05-11"; // 開始活動時間事件 默認為關閉 dateUntils.bool = true; // 設置 活動返回值接收的id dateUntils.id = "strTime"; // 調用事件。如果bool為false,那麽這個方法不會執行 dateUntils.startAndEnd(); </script> </html>
DateUntils js工具類
/** * 獲取當前日期的時間格式 */ var dateUntils = { name: "", // 指定時間 num: 0, // 多少天前後 startDate: "", // 活動開始時間 endDate: "", // 活動結束時間 id : "", bool: false, startAndEnd: function(){ if (this.bool && this.id != "" || this.id != null) { start(this.id); } else { console.log("id沒有設置,或者bool值沒有設置為true"); } }, // 是否進行活動 type: function() { return this.name == "" ? fDate(new Date()) : fDate(this.name); }, datetime: function() { return this.type().year + "-" + this.type().month + "-" + this.type().day + " " + this.type().hour + ":" + this.type().minute + ":" + this.type().second; }, date: function() { return this.type().year + "-" + this.type().month + "-" + this.type().day; }, time: function() { return this.type().hour + ":" + this.type().minute + ":" + this.type().second; }, appointedDay: function() { return appointedDate(this.num); } } /** * 根據num值進行獲取指定幾天前或幾天後的日期 * @param {Object} 必須為number類型 可以為負數和整數 */ function appointedDate(num) { var d = new Date(); var newDate = d.getTime() + 1000 * 60 * 60 * 24 * num; var mydate = new Date(newDate); var str = mydate.getFullYear() + "-"; str += toTwo(mydate.getMonth() + 1) + "-"; str += toTwo(mydate.getDate()); return str; } /** * 根據輸入的時間進行date日期轉換 * @param {Object} 手動輸入的時間 */ function fDate(d) { // 創建當前時間 var date = new Date(d); // 獲取當前時間的年份 var year = date.getFullYear(); // 獲取當前時間的月份(0-11),當前月份加一為實際月份 var month = date.getMonth() + 1; // 獲取當前時間的日期(天數 var day = date.getDate(); // 獲取當前時間的小時數 var hour = date.getHours(); // 獲取當前時間的分鐘數 var minute = date.getMinutes(); // 獲取當前時間的秒數 var second = date.getSeconds(); return { year: year, month: toTwo(month), hour: toTwo(hour), day: toTwo(day), hour: toTwo(hour), minute: toTwo(minute), second: toTwo(second) } } /** * 判斷當前數字是否小於10,如果小於10,則在數字前面加0 */ function toTwo(t) { return t >= 10 ? t : "0" + t; } /** * 獲取還剩下多少時間開始或結束 * @param {Object} 秒數 */ function timeCountDown(time) { var day = Math.floor(time / (60 * 60 * 24)); var hour = Math.floor((time - day * 24 * 60 * 60) / 3600); var minute = Math.floor((time - day * 24 * 60 * 60 - hour * 3600) / 60); var second = Math.floor(time - day * 24 * 60 * 60 - hour * 3600 - minute * 60); return toTwo(day) + "天" + toTwo(hour) + "小時" + toTwo(minute) + "分" + toTwo(second) + "秒"; } /** * 頁面顯示的地方 * @param {Object} 頁面接收的id值 */ function ShowCountDown(divname) { var now = new Date(); var start = new Date(dateUntils.startDate); var end = new Date(dateUntils.endDate); var startTime = (start.getTime() - now.getTime()) / 1000; var endtTime = (end.getTime() - now.getTime()) / 1000; var str; if(startTime >= 0) { str = "活動尚未開始,還有:" + timeCountDown(startTime) + "開始 "; } else if(endtTime > 0) { str = "活動正在進行中,還有:" + timeCountDown(endtTime) + "結束 "; } else { str = "活動已結束"; window.clearInterval(activityTime); } var cc = document.getElementById(divname); cc.innerHTML = str; } function start(id){ ShowCountDown(id); var activityTime = window.setInterval(function() { ShowCountDown(id); }, 1000); }
若在使用中出現問題,請聯系我
自己封裝的data日期工具類