2013-06-27 2 views
1

Je travaille sur les dates Javascript, j'ai une date qui tombe sous forme de 20 Jun 13, je besoin de le convertir en un objet Date, je Date.parse() qui retourne 1 June 2013.javascript format de date à l'aide dateFormat chaîne

var frmDt = '20 Jun 13'; 
alert(Date.parse(frmDt));  

Quelle est la solution?

+0

Je pense que cela peut aider: http://stackoverflow.com/questions/17267230/how-to-convert-the-following-string-to-the-correct-string/17267449#17267449 – HMR

+0

Pas directement mais il peut help: http://www.datejs.com/ –

+2

Vous devez montrer le code exact que vous utilisez, avec un exemple d'entrée. – JJJ

Répondre

1

J'ai trouvé que la manipulation des dates en javascript est extrêmement facile en utilisant momentJs, ce qui vous permet de construire des objets moment qui enveloppent les objets Date javascript natifs de manière très libérale, en passant des chaînes de différents formats et en obtenant réellement un objet date, d'une manière beaucoup plus fiable que Date.parse().

Vous pouvez également transmettre une chaîne de format de date, de sorte que votre cas soit quelque chose comme moment('20 Jun 13', 'DD MMM YY').

0

J'ai pris le code affiché dans mon commentaire et l'ai transformé en fonction, fait le casse, et le séparateur entre le jour et l'année peut être n'importe quel caractère (tant qu'il y en a un). de sorte que tout format jj mmm aa ou jj/mmm/aa ou d mmm yy travail:

function toDate(str){ 
    var months={ 
    "JAN":1, 
    "FEB":2, 
    //... other months 
    "JUN":6, 
    //... other months 
    "DEC":12 
    } 
    var r=/^(\d{1,2}).(\w{3}).(\d{2}$)/; 
    if(r.test(str)===false){ 
     throw new Error("Invalid date string:"+str); 
    } 
    var replaceFunction=function(){ 
    var years=parseInt(arguments[3],10); 
    var m=months[arguments[2].toUpperCase()]; 
    if(typeof m==="undefined"){ 
     throw new Error("Invalid month name:"+arguments[2]); 
    } 
    var days=arguments[1] 
    m=(m<9)?"0"+m:m; 
    days=(days.length===1)?days="0"+days:days; 
    years=(years>50)?years="19"+years:"20"+years; 
    return m+"/"+days+"/"+years; 
    }; 
    return new Date(str.replace(r,replaceFunction)); 
} 
console.log(toDate("20 Jun 13")); 
0

d3.js a des capacités très robustes pour l'analyse et le formatage des dates. Voir https://github.com/mbostock/d3/wiki/Time-Formatting.

+0

Etes-vous sûr d'inclure une bibliothèque de dessin de graphique est le meilleur moyen d'analyser les dates lorsqu'il existe d'autres bibliothèques spécifiquement gérer juste l'analyse et la mise en forme de la date? – Raibaz

+0

Non, je ne suis pas sûr, mais bon, nous vivons dans un monde où les gens incluent des bibliothèques 100K pour obtenir un peu de sucre syntaxique pour la manipulation DOM. –

Questions connexes