2014-04-26 6 views
0

comment formater une date à partir d'une chaîne dans le format que vous voulez?Le format Javascript date de la chaîne au format Date

var dateString = "31/05/2014 12:53:51"; 
// function only accepts dates in the format "yyyy/mm/dd" 
var date = new Date (dateString); 
+1

D'abord, analyser la chaîne dans ses parties constitutives. Utilisez ensuite dans le [* Date constructeur *] (http://ecma-international.org/ecma-262/5.1/#sec-15.9.3.1) pour faire une date. Ensuite, utilisez des méthodes comme [* getFullYear *] (http://ecma-international.org/ecma-262/5.1/#sec-15.9.5.10), [* getMonth *] (http://ecma-international.org/ ecma-262/5.1/# sec-15.9.5.12), etc. pour construire le format que vous voulez. – RobG

Répondre

0

Une fonction simple pour analyser la chaîne dans l'OP est:

// Return a Date object 
// Expects string in format d/m/y h:m:s 
// Separator is not important, order is 
function parseDate(s) { 
    var b = s.split(/\D+/); 
    return new Date(b[2], --b[1], b[0], b[3], b[4], b[5]); 
} 

ou si vous voulez juste reformater la chaîne (I deviné que vous ne voulez pas les espaces entre les nombres et le séparateur):

// Return a date in "yyyy/mm/dd" format 
// Expects string in format d/m/y h:m:s 
// Separator is not important, order is 
function reformatDate(s) { 
    // Helper to format single digit numbers 
    function z(n) {return (n<10? '0' : '') + +n;} 
    var b = s.split(/\D+/); 
    return b[2] + '/' + z(b[1]) + '/' + z(b[0]); 
} 

La fonction d'aide est utilisée juste n cas les nombres à un seul chiffre ne sont pas complétés dans l'entrée. Si vous êtes sûr qu'ils le sont toujours, vous pouvez l'enlever.

0

La méthode la plus simple consiste à utiliser une bibliothèque tierce telle que Moment.js.

Code de votre exemple en utilisant moment.js:

var date = moment("31/05/2014 12:53:51", "DD/MM/YYYY HH:mm:ss").toDate();