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.
		
		
		
		
		
			
		
			
				
					
					
						
							73 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
	
	
							73 lines
						
					
					
						
							1.8 KiB
						
					
					
				import { FORMAT_DEFAULT } from '../../constant'; | 
						|
export default (function (o, c, d) { | 
						|
  // locale needed later | 
						|
  var proto = c.prototype; | 
						|
  var oldFormat = proto.format; | 
						|
 | 
						|
  d.en.ordinal = function (number) { | 
						|
    var s = ['th', 'st', 'nd', 'rd']; | 
						|
    var v = number % 100; | 
						|
    return "[" + number + (s[(v - 20) % 10] || s[v] || s[0]) + "]"; | 
						|
  }; // extend en locale here | 
						|
 | 
						|
 | 
						|
  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); | 
						|
  }; | 
						|
}); |