2011-07-27 19 views
5

Próbuję uzyskać LocaleDateString i LocaleTimeString którym byłby toLocaleString() ale LocaleString daje GMT + 0100 (GMT Daylight Time) które wouldn to musi być pokazane.Get lokalną datę ciąg i czas ciąg

mogę używać coś takiego:

timestamp = (new Date()).toLocaleDateString()+toLocaleTimeString(); 

dziękuję

+0

Najlepiej sformatować samodzielnie. – RobG

+0

Jeśli to możliwe, mogę to sformatować? Dzięki – jQuerybeast

+2

Oh, wtedy "jak sformatować datę javascript" byłoby lepszym tematem. Kennebec ma twoją odpowiedź. :-) – RobG

Odpowiedz

13

Możesz użyć lokalnego ciągu dat jak jest, po prostu skrzypce godziny, minuty i sekundy.

Ten przykład zawiera pojedyncze cyfry z wiodącymi zerami i dostosowuje godziny dla am/pm.

function timenow(){ 
    var now= new Date(), 
    ampm= 'am', 
    h= now.getHours(), 
    m= now.getMinutes(), 
    s= now.getSeconds(); 
    if(h>= 12){ 
     if(h>12) h -= 12; 
     ampm= 'pm'; 
    } 

    if(m<10) m= '0'+m; 
    if(s<10) s= '0'+s; 
    return now.toLocaleDateString()+ ' ' + h + ':' + m + ':' + s + ' ' + ampm; 
} 
alert(timenow()); 
+0

Tego właśnie szukałem. Wielkie dzięki – jQuerybeast

3

Jeśli zbudować ciąg przy użyciu metod wanilia, zostanie ona automatycznie zrobić locale (TZ) oraz konwersję.

E.g.

var dNow = new Date(); 
var s = dNow.getMonth() + '/' + dNow.getDate() + '/' + dNow.getFullYear() + ' ' + dNow.getHours() + ':' + dNow.getMinutes(); 
+1

Dzięki, sir. Wolę randkę, ponieważ Wielka Brytania lub USA zależą od użytkownika. Więc zamiast 6/27/2011 mogliby użyć tego jako 27/6/2011, więc poleciłbyś dNow.toLocaleDateString() + '' + dNow.getHours() + ':' + dNow.getMinutes(); ? – jQuerybeast

+0

W takim przypadku należy rozpocząć od prostego wywołania toLocaleString(), a następnie do zastąpienia regex w wynikach, aby usunąć niepożądane składniki lub wyodrębnić żądane. – Tom