JavaScript 常用的扩展函数和方法
字符串相关扩展
- 字符串格式化1 
 2
 3
 4
 5
 6String.prototype.format = function () { 
 var args = arguments;
 return this.replace(/{(\d+)}/g, function (s, i) {
 return args[i];
 });
 };
日期相关处理扩展
- 日期格式化字符串扩展1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24/** 
 * 日期格式化
 * 例: new Date().format('yyyy-MM-dd hh:mm:ss.s') => "2017-08-24 16:15:40.693"
 * @param fmt 格式化字符串
 * @returns {*}
 */
 Date.prototype.format = function (fmt) { //author: meizz
 var o = {
 "M+": this.getMonth() + 1, //月份
 "d+": this.getDate(), //日
 "h+": this.getHours(), //小时
 "m+": this.getMinutes(), //分
 "s+": this.getSeconds(), //秒
 "q+": Math.floor((this.getMonth() + 3) / 3), //季度
 "S": this.getMilliseconds() //毫秒
 };
 if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "") .substr(4 - RegExp.$1.length));
 for (var k in o) {
 if (new RegExp("(" + k + ")").test(fmt)) {
 fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? o[k] : (("00" + o[k]).substr(("" + o[k]).length)));
 }
 }
 return fmt;
 };
- 计算两个日期之间的差值1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60/** 
 * 获得时间差
 * @param time 时间
 * @param type 类型
 * @returns {Number} 差值
 */
 Date.prototype.diff = function (time, type) {
 //作为除数的数字
 var divNum = 1;
 switch (type.toLowerCase()) {
 case "second":
 divNum = 1000;
 break;
 case "minute":
 divNum = 1000 * 60;
 break;
 case "hour":
 divNum = 1000 * 3600;
 break;
 case "day":
 divNum = 1000 * 3600 * 24;
 break;
 default:
 break;
 }
 return parseInt((this.getTime() - time.getTime()) / parseInt(divNum));
 };
 /**
 * 获得相差秒数
 * @param time 时间
 * @returns {Number}
 */
 Date.prototype.diffSecond = function (time) {
 return this.diff(time, 'Second')
 };
 /**
 * 获得相差分钟
 * @param time 时间
 * @returns {Number}
 */
 Date.prototype.diffMinute = function (time) {
 return this.diff(time, 'Minute')
 };
 /**
 *
 * 获得相差小时
 * @param time 时间
 * @returns {Number}
 */
 Date.prototype.diffHour = function (time) {
 return this.diff(time, 'Hour')
 };
 /**
 * 获得相差日期
 * @param time 时间
 * @returns {Number}
 */
 Date.prototype.diffDay = function (time) {
 return this.diff(time, 'Day')
 };
比较两个对象之间的差异
| 1 | var deepDiffMapper = function () { |