JavaScript日期处理工具类

jopen 5年前

/*   * 日期处理工具类   * 20130731   */  dev.DateToolBox = (function() {    /*按照指定的格式转换目标日期*/    var _getDateByFormat = function(sourceDate, format) {      var o = {        "M+" : sourceDate.getMonth() + 1, //月份        "d+" : sourceDate.getDate(), //日        "h+" : sourceDate.getHours() % 12 == 0 ? 12 : sourceDate.getHours() % 12, //小时        "H+" : sourceDate.getHours(), //小时        "m+" : sourceDate.getMinutes(), //分        "s+" : sourceDate.getSeconds(), //秒        "q+" : Math.floor((sourceDate.getMonth() + 3) / 3), //季度        "S" : sourceDate.getMilliseconds() //毫秒      };      var week = {        "0" : "/u65e5",        "1" : "/u4e00",        "2" : "/u4e8c",        "3" : "/u4e09",        "4" : "/u56db",        "5" : "/u4e94",        "6" : "/u516d"      };      if (/(y+)/.test(format)) {        format = format.replace(RegExp.$1, (sourceDate.getFullYear() + "").substr(4 - RegExp.$1.length));      }      if (/(E+)/.test(format)) {        format = format.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "/u661f/u671f" : "/u5468") : "") + week[sourceDate.getDay() + ""]);      }      for (var k in o) {        if (new RegExp("(" + k + ")").test(format)) {          format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));        }      }      return format;    };    /*返回当前的Date对象*/    var _getNowDate = function() {      return new Date();    };    /*返回当前时间戳*/    var _getNowTime = function() {      var date = new Date();      return date.getTime();    };    /*计算并返回当前时间所在自然月第一天对应的日期*/    var _getFirstDateOfMonth = function(format) {      var nowTime = _getNowDate();      var monthFirstDay = new Date(nowTime.getFullYear(), nowTime.getMonth(), 1);      return format ? _getDateByFormat(monthFirstDay, format) : monthFirstDay;    };        /*     * 单例的实现     */        /*     * 内部定义DateToolBox的实例     * 通过该实例,为外部提供接口     */    var dateToolBoxInstance = {      getCurrentTime : function() {        return _getNowTime();      },      getDateOfToday : function(format) {        var nowTime = _getNowDate();        return format ? _getDateByFormat(nowTime, format) : nowTime;      },      getFirstDateOfMonth : function(format) {        return _getFirstDateOfMonth(format);      },      convertDate : function(sourceDate, format) {        var _format = format || 'yyyy-MM-dd';        return _getDateByFormat(sourceDate, _format);      },      convertTimestamp : function(sourceTimestamp, format) {        var _format = format || 'yyyy-MM-dd';        var sourceDate = new Date(parseInt(sourceTimestamp) * 1000);        return _getDateByFormat(sourceDate, _format);      }    };        /*返回DateToolBox的唯一实例*/    function init() {      return dateToolBoxInstance;    }        /*外部只能通过getInstance方法获得本类的实例*/    return {      getInstance : init    };  })();