zoukankan      html  css  js  c++  java
  • JavaScript日期集合(今日,昨日,本周一,周末 ,月初,月末)


    一、封装为jQuery版日期集合插件

    jQuery.dateCollections = (function(){
    
        var nowDate = new Date();
        var cloneNowDate = new Date();
    
        var fullYear = nowDate.getFullYear();
        var month = nowDate.getMonth() + 1; // getMonth 方法返回 0-11,代表1-12月
        var date = nowDate.getDate();
    
        var endOfMonth = new Date(fullYear, month, 0).getDate(); // 获取本月最后一天
    
        // 格式化日期 (2016-02-14)
        function getFullDate(targetDate) {
            var D, y, m, d;
            if (targetDate) {
                D = new Date(targetDate);
                y = D.getFullYear();
                m = D.getMonth() + 1;
                d = D.getDate();
            } else {
                y = fullYear;
                m = month;
                d = date;
            }
            m = m > 9 ? m : '0' + m;
            d = d > 9 ? d : '0' + d;
    
            return y + '-' + m + '-' + d;
        }
    
        // 一天的时间戳(毫秒为单位)
        var timestampOfDay = 1000*60*60*24;
    
        // 今天,昨天
        var fullToday = getFullDate();
        var fullYesterday = getFullDate(nowDate - timestampOfDay);
    
        var nowDay = nowDate.getDay(); // getDay 方法返回0 表示星期天
        nowDay = nowDay === 0 ? 7 : nowDay;
    
        // 本周一,本周末(星期天)
        // 注:在safari下(nowDate +- 0)不会转换为时间戳,这里在nowDate前加上运算符+,手动转换时间戳运算
        var fullMonday = getFullDate( +nowDate - (nowDay-1)*timestampOfDay );
        var fullSunday = getFullDate( +nowDate + (7-nowDay)*timestampOfDay );
    
        // 月初,月末
        var fullStartOfMonth = getFullDate( cloneNowDate.setDate(1) );
        var fullEndOfMonth = getFullDate( cloneNowDate.setDate(endOfMonth) );
    
        return {
            fullToday: fullToday,
            fullYesterday: fullYesterday,
            fullMonday: fullMonday,
            fullSunday: fullSunday,
            fullStartOfMonth: fullStartOfMonth,
            fullEndOfMonth: fullEndOfMonth
        };
    
    }());

    二、封装为模块,可用于webpack工具打包

    var nowDate = new Date();
    var cloneNowDate = new Date();
    
    var fullYear = nowDate.getFullYear();
    var month = nowDate.getMonth() + 1; // getMonth 方法返回 0-11,代表1-12月
    var date = nowDate.getDate();
    
    var endOfMonth = new Date(fullYear, month, 0).getDate(); // 获取本月最后一天
    
    // 格式化日期 (2016-02-14)
    function getFullDate(targetDate) {
        var D, y, m, d;
        if (targetDate) {
            D = new Date(targetDate);
            y = D.getFullYear();
            m = D.getMonth() + 1;
            d = D.getDate();
        } else {
            y = fullYear;
            m = month;
            d = date;
        }
        m = m > 9 ? m : '0' + m;
        d = d > 9 ? d : '0' + d;
    
        return y + '-' + m + '-' + d;
    }
    
    // 一天的时间戳(毫秒为单位)
    var timestampOfDay = 1000*60*60*24;
    
    // 今天,昨天
    var fullToday = getFullDate();
    var fullYesterday = getFullDate(nowDate - timestampOfDay);
    
    var nowDay = nowDate.getDay(); // getDay 方法返回0 表示星期天
    nowDay = nowDay === 0 ? 7 : nowDay;
    
    // 本周一,本周末(星期天)
    // 注:在safari下(nowDate +- 0)不会转换为时间戳,这里在nowDate前加上运算符+,手动转换时间戳运算
    var fullMonday = getFullDate( +nowDate - (nowDay-1)*timestampOfDay );
    var fullSunday = getFullDate( +nowDate + (7-nowDay)*timestampOfDay );
    
    // 月初,月末
    var fullStartOfMonth = getFullDate( cloneNowDate.setDate(1) );
    var fullEndOfMonth = getFullDate( cloneNowDate.setDate(endOfMonth) );
    
    module.exports = {
        fullToday: fullToday,
        fullYesterday: fullYesterday,
        fullMonday: fullMonday,
        fullSunday: fullSunday,
        fullStartOfMonth: fullStartOfMonth,
        fullEndOfMonth: fullEndOfMonth
    };
  • 相关阅读:
    poj 3070 矩阵快速幂模板
    poj3207 2-SAT入门
    poj 3683 2-SAT入门
    2-SAT开坑
    poj 1442 名次树
    hdu 3068 最长回文子串 TLE
    poj 3261 二分答案+后缀数组 求至少出现k次的最长重复子序列
    poj 1743 二分答案+后缀数组 求不重叠的最长重复子串
    后缀数组笔记
    poj2774 后缀数组 求最长公共子串
  • 原文地址:https://www.cnblogs.com/taojietx/p/5189317.html
Copyright © 2011-2022 走看看