2012-01-07 88 views
3

我有一個簡單的片段,可以打印整天,一月,一天中的月份,小時和分鐘。Javascript:用3個字母替換日期的全天名稱和全月份名稱。星期二>星期二

下面是代碼: http://jsfiddle.net/raNms/

我想要更改

Monday > Mon 
Tuesday > Tue 
... 

和月:

January > Jan 
February > Feb 
... 

是否可以附加到身體前做了什麼?我不想替換附加的文本,而是從一開始就正確地打印它。

中的JavaScript:

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(h<10) h= '0'+h; 
    if(m<10) m= '0'+m; 
    var time = now.toLocaleDateString()+' '+h+':'+m+' '+ampm 

    $('body').html(time); 
+0

把代碼放在這裏總是一個好主意,因爲jsfiddle往往是不可靠的。我已編輯它。 – Pointy 2012-01-07 21:10:19

+0

jQuerybeast jquerey也是? – 2012-01-07 21:11:35

+0

你可能想看看[datejs](http://www.datejs。com)庫,它有一個'toString()'方法,充當日期的模板系統。 – Pointy 2012-01-07 21:12:21

回答

1

只需補充一點:

var txt = now.toLocaleDateString().replace(/\b[a-z]+\b/gi,function($0){return $0.substring(0,3)}); 

代碼:http://jsfiddle.net/raNms/1/

+0

發現這是我猜測的最簡單的方法 – jQuerybeast 2012-01-07 21:25:22

1

這裏做一個偉大的方式:http://www.webdevelopersnotes.com/tips/html/getting_current_time_using_javascript.php3

這裏是你的代碼是什麼樣子與變化:

輸出:

Sat, Jan 7 2012 04:21 pm 

驗證碼:

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(h<10) h= '0'+h; 
    if(m<10) m= '0'+m; 


var weekdayNames = new Array("Sun", "Mon", "Tuey", 
"Wed", "Thu", "Fri", "Sat"); 

var monthNames = new Array("Jan", "Feb", "Mar", 
"Apr", "May", "Jun", "Jul", "Aug", "Sep", 
"Oct", "Nov", "Dec"); 

    //var dateString = now.toLocaleDateString(); 
    var weekday = weekdayNames[now.getDay()]; 
    var month = monthNames[now.getMonth()]; 
    var dateString = weekday + ', ' + month + ' ' + now.getDate() + ' ' + now.getFullYear(); 
    var time = dateString +' '+h+':'+m+' '+ampm 

    $('body').html(time); 

我還創建了一個的jsfiddle它http://jsfiddle.net/luisperezphd/raNms/2/

+0

謝謝。工作真的很棒,是多次使用它的好例子。在我的情況下,雖然它的一個lil腳本我會使用自己,因此我選擇了Ivan的答案。 – jQuerybeast 2012-01-07 21:28:37

0

一個簡單的方法:

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(h<10) h= '0'+h; 
    if(m<10) m= '0'+m; 
    t = now.toLocaleDateString(); 
    var time = t.split(',')[0].substring(0,3) + ', ' + 
       t.split(',')[1].substring(1,4) + ' ' + 
       t.split(',')[1].split(' ')[2] + 
       t.split(',')[2] + ', ' + 
       ' '+h+':'+m+' '+ampm 

    $('body').html(time); 

輸出:

Sat, Jan 07 2012, 10:20 pm 
0

使用合適的庫,如Globalize.js。處理類似事情的特殊代碼需要更多的工作,往往不太可靠,並且在需要修改軟件時意味着負擔。

實施例:

Globalize.format(today,'ddd, MMM d, yyyy') + ' ' + Globalize.format(today,'T') 

可生產例如

Sat, Jan 7, 2012 11:32:21 PM 

您可以通過修改格式化字符串來調整外觀。

請注意,toLocaleString由系統決定,所以它可能會生成任何語言的星期幾名稱(或根本不會)。以下是您的代碼在我的環境中在一個瀏覽器中生成的內容: 「7。 tammikuuta 2012 11:26 pm「。

相關問題