2013-07-03 8 views
5

Ho uno script e voglio formattare una data fuori a breve formato della data e cioè:toLocaleDateString Javascript formato della data emette

7/3/2013 o 7/3/13 il primo formato della data rende simile in Chrome, ma non tutti gli altri browser, visualizza il nome del mese e l'anno.

function dateFormatter(date) { 
    return date.toLocaleDateString(); 
} 

Bit confuso sul perché questo sta accadendo. È perché quel browser non supporta tolocalDateString();

avrei bisogno di costruire una stringa di data personalizzata in modo per farlo funzionare?

Scusate se è un po 'vaga - ho avuto uno sguardo sul sito W3C Ma non fidarsi di quel sito, a volte.

risposta

2
function dateFormatter(date){ 
    if(Date.parse('2/6/2009')=== 1233896400000){ 
     return [date.getMonth()+1, date.getDate(), date.getFullYear()].join('/'); 
    } 
    return [date.getDate(), date.getMonth()+1, date.getFullYear()].join('/'); 
} 
+7

Questo non è a conoscenza delle impostazioni internazionali ... – Koterpillar

+0

@kennebec ha funzionato perfettamente. Ho provato qualcosa di simile a questo, ma ad essere sincero ho appena incasinato. Ma sì, ha funzionato senza intoppi. Saluti. – MJCoder

+1

@kennebec, che cosa fa la condizione if, perché abbiamo bisogno di questo strano controllo della data del 2/6/2009? –

9

Il formato predefinito di toLocaleDateString è definito dall'implementazione. Se si desidera un controllo preciso di ciò che viene visualizzato, utilizzare un browser che supporti locales and options arguments a toLocaleDateString. Sfortunatamente, al momento questo significa solo Chrome.

Se non ti interessa l'utente e le relative impostazioni internazionali e desideri confondere tutti con il formato di data statunitense, allora sì, puoi codificare le parti di data come suggerito da @kennebec.

+0

Grazie per aver menzionato gli argomenti delle opzioni. – Tony