2011-03-24 13 views
5

Sé al construir un objeto Date en javascript con un parámetro dateString, la cadena debe ser algo que parse() puede reconocer.¿Qué formato de fecha de cadena reconocerá el análisis de JavaScript?

¿Qué formato de fecha puede reconocer parse?

Por ejemplo:

var postDate = new Date("2011-03-08T23:52:38"); 

obras en Chrome e Internet Explorer, pero falla en un iPhone (devuelve 1 Ene, 1970).

no puedo encontrar ninguna documentación formal en el método .parse(), o el constructor, sobre cuál debe ser el parámetro.

El formato yyyy-mm-ddThh:nn:ss no funciona. ¿Qué es la cadena de formato permitida?

Respuesta

11

Los MDC documentation of Date.parse() estados (donde se cita):

Se acepta la estándar IETF(RFC 1123 Sección 5.2.14 y en otros lugares) fecha sintaxis:
"Mon, 25 Dec 1995 13:30:00 GMT".


OP Edición:

sintaxis .NET para crear esta cadena de fecha y hora:

/* 
* r (RFC1123Pattern) 
*  ddd, dd MMM yyyy HH':'mm':'ss 'GMT' 
*  Mon, 15 Jun 2009 20:45:30 GMT 
*/ 
dateTime.ToUniversalTime().ToString("r", CultureInfo.InvariantCulture); //"r" = RFC1123Pattern 

Editar: El (patrón RFC1123) r siempre anexa "GMT ", a pesar de que la hora no es GMT (es local). Primero debe llamar al .ToUniversalTime(), para que el tiempo en realidad sea sea GMT.

+0

+1 Este es el formato que debe trabajar lo que sea :) sucede. – kapa

0

Usar el formato producido por el método Date toJSON funcionará. Esto es lo mismo que el método toIOSString.

El formato de fecha es AAAA-MM-DDTHH: mm: ss.sssZ

Nota: La zona horaria UTC es siempre como se indica por el sufijo "Z".

var d = new Date(); 
console.log(d.toJSON()); 
console.log(d.toJSON() === d.toISOString()); 
console.log(Date.parse(d.toJSON()) === Date.parse(d.toISOString())); 

Usted puede encontrar que la fecha que aparece no es la misma que en su reloj; recuerde que la zona horaria es UTC.

Referencias:

Date.prototype.toJSON()

Date.prototype.toISOString()

Cuestiones relacionadas