Ups ... un pequeño boo-boo - el constructor de fecha en realidad se ve así: nueva Fecha (año, mes, fecha [, hora, minuto, segundo, milisegundo]) por lo que necesita alterar el orden de dateParts dentro del constructor.
Salman A
6
Otro boo-boo. El constructor de fechas de JavaScript es extraño en cómo maneja los meses. Considera que 0 significa enero, 1 significa febrero, etc. La línea del código anterior debería verse así: var date = new Date (dateParts [2], dateParts [1] - 1, dateParts [0]);
Elias Zamaria
1
@ mikez302, tienes razón. la referencia de MDC vinculada también lo señala. código corregido
Jonathan Fingland
mmm, pero ¿cómo comprobar que strDate tiene un valor no válido como "30.30.2000"?
Dr. No
2
@ user674887, puede comparar los valores después del análisis. Por ejemplo, dateParts [1] -1 == date.getMonth ()
Jonathan Fingland
51
Si está utilizando jQuery UI, puede formatear cualquier fecha con:
<html><body>Your date formated:<span id="date1"></span><br/></body></html>
+1 No lo veo totalmente fuera de alcance, JavaScript y JQuery son una combinación común.
Djna
Una respuesta no debe depender de una biblioteca que no esté etiquetada o mencionada en el OP. Usar jQuery como una biblioteca de fechas es una exageración enorme cuando una función de 3 líneas puede hacer el mismo trabajo.
RobG
9
Usamos este código para verificar si la cadena es una fecha válida
Eso no prueba fechas válidas en absoluto, solo prueba si el constructor Date puede hacer una fecha válida a partir de la entrada. Los dos no son lo mismo.
Para la mayoría de los casos, MomentJS es una exageración, ya que el uso de JavaScript puro solo requiere cientos de bytes, mientras que MomentJS tiene 12,4 kb en gzip. Conveniente para los desarrolladores, pero ralentiza el sitio web. No vale la pena.
Raptor
3
Me han utilizado siguiendo el código en IE. (Compatible con IE8)
var dString ="2013.2.4";var myDate =newDate( dString.replace(/(\d+)\.(\d+)\.(\d+)/,"$2/$3/$1"));
alert("my date:"+ myDate );
@ Duke: new Date(Date.parse('02.02.1999'))producirá resultados idénticos a new Date('02.02.1999'), incluida la fecha no válida en algunos navegadores. El uso del analizador integrado es posiblemente la peor forma de analizar una marca de tiempo.
RobG
2
Esta función también maneja la fecha no válida 29.2.2001.
function parseDate(str){var dateParts = str.split(".");if(dateParts.length !=3)returnnull;var year = dateParts[2];var month = dateParts[1];var day = dateParts[0];if(isNaN(day)|| isNaN(month)|| isNaN(year))returnnull;var result =newDate(year,(month -1), day);if(result ==null)returnnull;if(result.getDate()!= day)returnnull;if(result.getMonth()!=(month -1))returnnull;if(result.getFullYear()!= year)returnnull;return result;}
Se supone que debes usar javascript, no jquery, ya que no hay etiqueta jquery
Sagar
feliz ... el significado es simplemente entender al senario
Bachas
Bien. No creo que su ejemplo sea diferente al de Martin Staufcik. De hecho, su respuesta tiene lógica adicional para manejar fechas inválidas.
Sagar
Martin Staufcik maneja esas condiciones que no ocurren generalmente. ¿Puede darme algún calendario que pueda dar invalidates? ¿Por qué deberíamos escribir un código tan largo cuando podemos manejarlo de manera corta? Me gustaría mucho mejor si Martin Staufcik también diera para manejar la fecha con el tiempo para manejar.
Respuestas:
Ver:
Código:
fuente
Si está utilizando jQuery UI, puede formatear cualquier fecha con:
http://jsfiddle.net/mescalito2345/ND2Qg/14/
fuente
Usamos este código para verificar si la cadena es una fecha válida
fuente
referencias: http://momentjs.com/docs/#/parsing/string/
Si usa moment.js, puede usar el modo "cadena" + "formato"
ex:
fuente
Me han utilizado siguiendo el código en IE. (Compatible con IE8)
fuente
Los desarrolladores de ASP.NET tienen la opción de este práctico dispositivo integrado (MS JS debe estar incluido en la página):
http://msdn.microsoft.com/en-us/library/bb397521%28v=vs.100%29.aspx
fuente
Usar objeto de fecha:
Dar: 917902800000
fuente
new Date(Date.parse('02.02.1999'))
new Date(Date.parse('02.02.1999'))
Javascriptnew Date(Date.parse('02.02.1999'))
producirá resultados idénticos anew Date('02.02.1999')
, incluida la fecha no válida en algunos navegadores. El uso del analizador integrado es posiblemente la peor forma de analizar una marca de tiempo.Esta función también maneja la fecha no válida 29.2.2001.
fuente
puede formatear la fecha simplemente haciendo este tipo de código. En javascript.
fuente