You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					66 lines
				
				1.6 KiB
			
		
		
			
		
	
	
					66 lines
				
				1.6 KiB
			| 
											2 years ago
										 | import { FORMAT_DEFAULT } from '../../constant'; | ||
|  | export default (function (o, c) { | ||
|  |   // locale needed later
 | ||
|  |   var proto = c.prototype; | ||
|  |   var oldFormat = proto.format; | ||
|  | 
 | ||
|  |   proto.format = function (formatStr) { | ||
|  |     var _this = this; | ||
|  | 
 | ||
|  |     var locale = this.$locale(); | ||
|  | 
 | ||
|  |     if (!this.isValid()) { | ||
|  |       return oldFormat.bind(this)(formatStr); | ||
|  |     } | ||
|  | 
 | ||
|  |     var utils = this.$utils(); | ||
|  |     var str = formatStr || FORMAT_DEFAULT; | ||
|  |     var result = str.replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g, function (match) { | ||
|  |       switch (match) { | ||
|  |         case 'Q': | ||
|  |           return Math.ceil((_this.$M + 1) / 3); | ||
|  | 
 | ||
|  |         case 'Do': | ||
|  |           return locale.ordinal(_this.$D); | ||
|  | 
 | ||
|  |         case 'gggg': | ||
|  |           return _this.weekYear(); | ||
|  | 
 | ||
|  |         case 'GGGG': | ||
|  |           return _this.isoWeekYear(); | ||
|  | 
 | ||
|  |         case 'wo': | ||
|  |           return locale.ordinal(_this.week(), 'W'); | ||
|  |         // W for week
 | ||
|  | 
 | ||
|  |         case 'w': | ||
|  |         case 'ww': | ||
|  |           return utils.s(_this.week(), match === 'w' ? 1 : 2, '0'); | ||
|  | 
 | ||
|  |         case 'W': | ||
|  |         case 'WW': | ||
|  |           return utils.s(_this.isoWeek(), match === 'W' ? 1 : 2, '0'); | ||
|  | 
 | ||
|  |         case 'k': | ||
|  |         case 'kk': | ||
|  |           return utils.s(String(_this.$H === 0 ? 24 : _this.$H), match === 'k' ? 1 : 2, '0'); | ||
|  | 
 | ||
|  |         case 'X': | ||
|  |           return Math.floor(_this.$d.getTime() / 1000); | ||
|  | 
 | ||
|  |         case 'x': | ||
|  |           return _this.$d.getTime(); | ||
|  | 
 | ||
|  |         case 'z': | ||
|  |           return "[" + _this.offsetName() + "]"; | ||
|  | 
 | ||
|  |         case 'zzz': | ||
|  |           return "[" + _this.offsetName('long') + "]"; | ||
|  | 
 | ||
|  |         default: | ||
|  |           return match; | ||
|  |       } | ||
|  |     }); | ||
|  |     return oldFormat.bind(this)(result); | ||
|  |   }; | ||
|  | }); |