2012-02-18 31 views
9

Me pregunto cuál es la mejor manera de convertir una marca de tiempo de este formato -conversión de marca de hora JavaScript

2012-02-18 14:28:32 

a una presentación de la fecha de este formato -

Saturday Feb 2012 14:28:32 

Muchas gracias :)

+0

Como para dar formato a una cadena final que podría sugerir que [la siguiente librería] (http://blog.stevenlevithan.com/archives/date-time -formato). En cuanto a la primera parte de la pregunta, puede consultar la [siguiente pregunta] (http://stackoverflow.com/questions/9229213/convert-iso-date-to-milliseconds-in-javascript/9229384) – Oybek

Respuesta

5
funciones de fecha

Javascript son bastante malo ... Usted tiene la opción de convertir a UTC http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_toutcstring

Pero si fuera yo, me gustaría ver en Datejs: http://www.datejs.com/ mejor API de JavaScript fecha para mí

favor echar un vistazo a la guía Introducción a Datejs: http://www.datejs.com/2007/11/27/getting-started-with-datejs/

+4

w3schools es bastante malo también - http://www.w3fools.com – ThiefMaster

1

El objeto JavaScripts Date carece de métodos para formatear. Consideraría usar una biblioteca externa como this one. Parece que tiene lo que estás buscando.

1

tratar este blog tiene suficientes dateformats:

2

primero debe definir una serie de las palabras inglesas (domingo, lunes, Feb, Mar, etc.):

var daysOfWeek = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], 
    monthsOfYear = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 

Para ser capaz de insertar el extra 0 a principios de los minutos y los segundos, definir una función de relleno para el prototipo String:

String.prototype.padLeft = function(padString,length){ 
    var toReturn = String(this); 
    while(toReturn.length < length){ 
     toReturn = padString + toReturn; 
    } 
    return toReturn; 
} 

Formato de la fecha y la hora de esta manera:

var time = new Date(), formattedDate, formattedTime, wholeThing; 
formattedDate = daysOfWeek[time.getDay()] + ", " + monthsOfYear[time.getMonth()] + " " + time.getDate() + ", " + time.getFullYear(); 
formattedTime = time.getHours() + ":" + time.getMinutes().padLeft("0",2) + time.getSeconds().padLeft("0",2); 

, usted puede obtener toda la cosa concatenando formattedDate y formattedTime, como en:

wholeThing = formattedDate + " " + formattedTime; 
3

considerar el uso de datejs que es rocas!

var mydate = Date.parse('2012-02-18 14:28:32'); 
var result = mydate.toString('dddd MMM yyyy h:mm:ss'); 
console.log(result); 
+0

¡Gracias por la línea 2! – user1202278

+1

??? El argumento de extensión no capturado RangeError: toString() debe estar entre 2 y 36 en Number.toString () en : 2: 21 –

+0

@PaoloBiavati eso significa que usted llama 'toString' en un número, no en una Fecha: https://stackoverflow.com/questions/16527109/javascript-date-tostring-radix-argument -error (use datejs). – Ehvince

1

Sugeriría utilizar una biblioteca js externa para hacer eso. Que yo sepa, Moment.js es la mejor biblioteca de conversión de fecha-hora disponible.

En este caso, hace el trabajo en una línea. Sólo tiene que añadir los moment.js en que proyecto y luego hacer

var timestamp = '2012-02-18 14:28:32'; 
var formattedTime = moment(timestamp).format('dddd MMM YYYY HH:mm:ss'); // Saturday Feb 2012 14:28:32 
Cuestiones relacionadas