1. 程式人生 > >自己封裝的data日期工具類

自己封裝的data日期工具類

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日期工具類