JavaScript日期處理工具類

jopen 11年前發布 | 17K 次閱讀 JavaScript開發 JavaScript

/*

  • 日期處理工具類
  • 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 }; })(); </pre>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!