2017-02-09 117 views
1

我已經問了quesion How to hide time standards from javascript從24小時更改JS時間格式12小時

,但我需要改變時間格式12小時。

function display_c() { 
 
     var refresh = 1000; // Refresh rate in milli seconds 
 
     mytime = setTimeout('display_ct()', refresh) 
 
    } 
 

 
    function display_ct() { 
 
     var strcount 
 
     var x = new Date() 
 
     document.getElementById('ct').innerHTML = x.toString().replace(/GMT(.*)/g,""); 
 
     tt = display_c(); 
 
    } 
 
display_ct()
<span id='ct'></span>

+0

[momentjs](https://momentjs.com/) – Andreas

+1

[您如何在12小時上午/下午格式顯示javascript日期時間?](http://stackoverflow.com/questions/8888491/how尚北道任您顯示JavaScript的日期時間,在12小時的AM-PM格式) –

回答

2

匹配的hours用正則表達式模式/(\d+)(:)/和檢查> 12然後應用條件。

Date methods

function display_c() { 
 
    var refresh = 1000; // Refresh rate in milli seconds 
 
    mytime = setTimeout('display_ct()', refresh) 
 
} 
 
var format; 
 

 
function display_ct() { 
 
    var strcount 
 
    var x = new Date() 
 
    document.getElementById('ct').innerHTML = x.toString().replace(/GMT(.*)/g, "").replace(/(\d+)(:)/, 
 
    function(a, b, c) { 
 
     b = parseInt(b); 
 
     if (b > 12) { 
 
     b = b - 12; 
 
     format ='PM'; 
 
     } 
 
    else{ 
 
     b=b; 
 
    format="AM"; 
 
     } 
 
     return b + c; 
 
    })+format; 
 
    tt = display_c(); 
 
} 
 
display_ct()
<span id='ct'></span>

或嘗試用另一種模式

function display_c() { 
 
     var refresh = 1000; // Refresh rate in milli seconds 
 
     mytime = setTimeout('display_ct()', refresh) 
 
    } 
 
var m =['Jan','Feb','Mar','Aprl','May','Jun','July','Aug','Sep','Oct','Nov','Dec']; 
 
var w =['Sun','Mon','Tue','Wed','Thu','Fri','Sat']; 
 

 
    function display_ct() { 
 
     var strcount 
 
     var x = new Date() 
 
     var h = x.getHours() > 12 ? x.getHours() -12 : x.getHours(); 
 
     var format = x.getHours() > 12 ? 'PM' : 'AM'; 
 
     document.getElementById('ct').innerHTML =w[x.getDay()]+' '+m[x.getMonth()]+' '+x.getFullYear()+' '+h+':'+x.getMinutes()+':'+x.getSeconds()+' '+format; 
 
     tt = display_c(); 
 
    } 
 
display_ct()
<span id='ct'></span>

+0

喜@prasad編輯...它可以添加AM,PM? – Vishnu

+0

哪一個更好的選擇 - 正則表達式或數組? – Vishnu

+0

用正則表達式模式簡單的顯示出來使用。如果需要應用一些動作使用陣列模式。因爲它得到'日期,時間秒,月,年'的個人數據 – prasanth

1

你可以做,使用momentjs字符串格式。使用這個,你可以按你喜歡的方式顯示日期。

在下面的代碼段,你可以看到如何實現相同的功能。

function display_c() { 
 
    var refresh = 1000; // Refresh rate in milli seconds 
 
    mytime = setTimeout('display_ct()', refresh) 
 
} 
 

 
function display_ct() { 
 
    var strcount 
 
    var x = new Date() 
 
    document.getElementById('ct').innerHTML = moment(x).format('ddd MMM DD gggg hh:mm:ss'); 
 
    tt = display_c(); 
 
} 
 

 
display_ct()
<script src="http://momentjs.com/downloads/moment.js"></script> 
 
<span id='ct'></span>

注:

  1. hh12小時format,你可以找到更多的格式accesing的文件(你可以看到一些我以前在我的例子)。

  2. 關於這樣做的好處是,除去使用replace的需要。

  3. 而且也沿用了KISS principle

+0

謝謝,這是非常有用的..但無需任何外部JS。只希望用相同的代碼 – Vishnu

相關問題