时间格式处理

/*
 * 日期处理工具类
 * 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
  };
})();

转载于:https://my.oschina.net/u/259316/blog/183256

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值