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