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.
		
		
		
		
		
			
		
			
				
					
					
						
							31 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							31 lines
						
					
					
						
							1.2 KiB
						
					
					
				'use strict'; | 
						|
var fails = require('../internals/fails'); | 
						|
var padStart = require('../internals/string-pad').start; | 
						|
 | 
						|
var abs = Math.abs; | 
						|
var DatePrototype = Date.prototype; | 
						|
var getTime = DatePrototype.getTime; | 
						|
var nativeDateToISOString = DatePrototype.toISOString; | 
						|
 | 
						|
// `Date.prototype.toISOString` method implementation | 
						|
// https://tc39.github.io/ecma262/#sec-date.prototype.toisostring | 
						|
// PhantomJS / old WebKit fails here: | 
						|
module.exports = (fails(function () { | 
						|
  return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; | 
						|
}) || !fails(function () { | 
						|
  nativeDateToISOString.call(new Date(NaN)); | 
						|
})) ? function toISOString() { | 
						|
  if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value'); | 
						|
  var date = this; | 
						|
  var year = date.getUTCFullYear(); | 
						|
  var milliseconds = date.getUTCMilliseconds(); | 
						|
  var sign = year < 0 ? '-' : year > 9999 ? '+' : ''; | 
						|
  return sign + padStart(abs(year), sign ? 6 : 4, 0) + | 
						|
    '-' + padStart(date.getUTCMonth() + 1, 2, 0) + | 
						|
    '-' + padStart(date.getUTCDate(), 2, 0) + | 
						|
    'T' + padStart(date.getUTCHours(), 2, 0) + | 
						|
    ':' + padStart(date.getUTCMinutes(), 2, 0) + | 
						|
    ':' + padStart(date.getUTCSeconds(), 2, 0) + | 
						|
    '.' + padStart(milliseconds, 3, 0) + | 
						|
    'Z'; | 
						|
} : nativeDateToISOString;
 | 
						|
 |