JavaScript convertire una stringa in una Data con formato gg mmm aaaa), cioè il 01 Giu 2012

Sto diventando una variabile stringa avente data nel formato 6/1/2012, voglio convertire in 01 Jun 2012 .
JS VIOLINO DEMO

Codice che ho provato:

var t_sdate="6/1/2012";                  
var sptdate = String(t_sdate).split("/");
var myMonth = sptdate[0];
var myDay = sptdate[1];
var myYear = sptdate[2];
var combineDatestr = myYear + "/" + myMonth + "/" + myDay;

var dt = new Date(combineDatestr);
var formatedDate= dt.format("dd mmm yyyy")
alert(formatedDate);

Recupero di output come 01 000 2012, richiesto come 01 Jun 2012

  • Uncaught TypeError: Oggetto [oggetto Data] non ha metodo ‘formato’ stato l’errore registrato in console. Il codice funziona se si includono dateformat-js plugin nel tuo codice.
  • non si utilizza qualsiasi file js esterno, è possibile farlo senza l’uso di qualsiasi file esterno
  • Guardate questo: stackoverflow.com/questions/1056728/…
  • fatto u utilizzare questo blog.stevenlevithan.com/archives/date-time-format ? u sicuro u dwonloaded il date.format.js file e impostare correttamente prima di u iniziato?

 

6 Replies
  1. 8

    Provare questo:

    function getFormattedDate(input) {
        var pattern = /(.*?)\/(.*?)\/(.*?)$/;
        var result = input.replace(pattern,function(match,p1,p2,p3){
            var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
            return (p2<10?"0"+p2:p2) + " " + months[(p1-1)] + " " + p3;
        });
    
        alert(result);
    }
    
    getFormattedDate("6/1/2013");

    Jsfiddle demo

    • Soluzione perfetta, ultimate senza aggiunta di external js
    • Localizzata soluzione che funziona solo per il locale en.
    • c’è un modo per stampare il nome del giorno lungo con lo stesso codice?
  2. 2

    Dal momento che altri utenti hanno già detto che "format" non è un metodo standard per la Data in oggetto. Si può fare senza l’uso di alcun metodo format (anche se esistono)

    var t_sdate = "6/1/2012";
    var sptdate = String(t_sdate).split("/");
    var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    var myMonth = sptdate[0];
    var myDay = sptdate[1];
    var myYear = sptdate[2];
    var combineDatestr = myDay + " " + months[myMonth - 1] + " " + myYear;
    
    alert(combineDatestr);

    JsFiddle Demo

  3. 1
    return $.datepicker.formatDate('dd-M-yy', new Date(dateVal)); //01-Dec-2014
    • Ciao, e benvenuto a Stack Overflow. In generale, se i tag non includono jquery (o in un’altra libreria), le risposte devono astenersi dall’utilizzo di librerie per risolvere il problema (o possono suggerire che l’utilizzo di una libreria sarebbe più facile). Qui, basta assumere le OP utilizza jQueryUI; la risposta sarebbe stata più utile l’aveva suggerito che jQueryUI ha questo fresco funzionalità, ma nessuna libreria risposte sono ancora preferito (soprattutto in considerazione OP domanda di commento). Dai un’occhiata anche al di Overflow dello Stack di formattazione aiuto: rientro di quattro caratteri per blocchi di codice (o mettere gli apici inversi per codice inline).
  4. -4
    dt.format("dd MMM yyyy")

    Utilizzare le lettere maiuscole.

    • Come guy777 giustamente notare, standard di JavaScript non hanno un format funzione.

Lascia un commento