2011-01-13 17 views

Respuesta

7
var dateString = '13011948'; 

La longitud del texto es fija y siempre a la misma posición. Luego puede usar substr para cortarlos en partes y usar parseInt para convertirlos en números.

var month = parseInt(dateString.substr(0, 2), 10), 
     day = parseInt(dateString.substr(2, 2), 10), 
    hour = parseInt(dateString.substr(4, 2), 10), 
    minute = parseInt(dateString.substr(6, 2), 10); 

O en cambio, lo puso en un único objeto de fecha.

var date = new Date(); 
date.setMonth (parseInt(dateString.substr(0, 2), 10) - 1); 
date.setDate (parseInt(dateString.substr(2, 2), 10)); 
date.setHours (parseInt(dateString.substr(4, 2), 10)); 
date.setMinutes (parseInt(dateString.substr(6, 2), 10)); 
4

EDITAR

La biblioteca moment.js encontró here ve increíble para esto!

EDITAR FIN

esto debería ayudar ... working with Dates

+0

wow, elated todavía está funcionando !! Solía ​​ir a las plantillas de sitios web gratuitos antes del cambio de milenio (¡y mucho antes de que fuera un desarrollador web)! aplausos para el paseo por el carril de la memoria :-) – WickyNilliams

+0

jajaja Nunca había oído hablar de él. apareció en google cuando busqué. Parece un buen recurso para esto ... – stephen776

2

Hay varios método en javascript objeto Date que conseguir que esos parámetros

var curdate = new Date(); 
var mday = curdate.getDate();  //returns day of month 
var month = curdate.getMonth();  //returns month 0-11 
var hours = curdate.getHours();  //returns hours 0-23 
var minutes = curdate.getMinutes(); //returns minutes 0-59 

Comprobar this

Si no tiene un objeto de fecha, puede analizarlo usando

var curdate = Date.parse("Jan 1, 2010"); 

para analizar fecha a su formato específico se refiere this

+0

¿Estás seguro de que el segundo ejemplo es correcto? Date.parseDate() no parece existir para mí y la función Date.parse() que toma un único argumento en formato IETF. –

+0

@Mark Biek - Sí, gracias Mark, tienes razón. – niksvp

3

Si tiene la garantía de que siempre va a ser en formato MMDDHHMM, se podría analizar con un simple expresión regular.

var d = "01121201"; 
var m = /([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/.exec(d); 

console.log(m); 

la que emitiría

["01121201", "01", "12", "12", "01"] 

Pero el uso de las funciones de fecha real es mejor si es posible.

Se podría hacer algo como lo siguiente para tomar el resultado del partido expresión regular anterior para crear un verdadero Javascript objeto Date:

//The year will default to the current year 
var realDate = new Date(); 
realDate.setMonth(m[1]); 
realDate.setDate(m[2]); 
realDate.setHours(m[3]); 
realDate.setMinutes(m[4]); 
+7

¡Tienes una barba impresionante! – Anders

+0

¡Deberías verlo ahora! Es corto en esa imagen :) –

+0

Estoy de acuerdo, su barba es intimidante ..... – Liam

Cuestiones relacionadas