2013-09-01 42 views
4

今天,我想transfrom日起使用jQuery/JavaScript的不同格式:如何使用jQuery/Javascript更改日期格式?

$date = '2013-04-01T19:45:11.000Z' 
$cool = date('Y-m-d',strtotime($date)); 

我怎樣才能做到這一點(PHP)jQuery中/ JavaScript的?

謝謝!

+0

檢查這個帖子http://stackoverflow.com/questions/1056728/formatting-a-date-in-javascript – fujy

+0

檢查這裏的解決方案: http://stackoverflow.com/questions/19546855/change-date-format-from-jquery?answertab =最古老#tab-top – DropAndTrap

回答

2

你需要這樣格式的日期爲JavaScript Sun, 01 Sep 13 08:06:57 +0000 所以在PHP中,你需要做這樣的事情

date_default_timezone_set('Australia/Perth'); 
echo date('D, d M y H:i:s')." +0000"; 

你可以使用jQuery試驗,以檢查它

$.get('dateformat.php', function(data) { 
    date = new Date(data); 
    console.log(date); 
}); 

然後你可以根據需要格式化日期

格式化日期對象的示例:

$.date = function(dateObj) { 
    var d = new Date(dateObj); 
    var day = d.getDate(); 
    var month = d.getMonth() + 1; 
    var year = d.getFullYear(); 

    if (month < 10) { 
     month = "0" + month; 
    } 
    return year + "." + month + "." + day; 
}; 

一個jQuery插件來幫助你格式化類似於日期到PHP

https://github.com/phstc/jquery-dateFormat

你可以用它來應用格式類似這樣的

$.format.date("2009-12-18 10:54:50.546", "Test: dd/MM/yyyy") 

我想而已。

+0

爲什麼你會說你需要這種格式的JavaScript?這是不正確的。 JavaScript本地支持許多不同的日期格式。 [這裏是一些例子](http://dygraphs.com/date-formats.html) –

+0

Op表示他想使用'Ymd'這樣的東西,這就是爲什麼我提到一個插件,否則我寫了一個例子如何做到這一點用手 – Davit

+0

我指的是你的答案的第一句話。 –

1

JavaScript是足夠聰明的接受日期不同格式

var d1 = new Date('2013-04-01T19:45:11.000Z'); 
+2

嗯,大多數現代瀏覽器無論如何。 –

4

使用javascript date object

<script> 
    var date = new Date('2013-04-01T19:45:11.000Z'); 
    var day = date.getDate(); 
    var month = date.getMonth(); 
    var year = date.getFullYear(); 

    document.write(year + '-' + month + '-' + day); 
</script> 
+1

值得注意的是,.getMonth返回該月份的基於零的版本(1月= 0,2月= 1,12月= 11等)。如果您打算按照這種方式返回正確的日期,那麼您應該在本月添加一個:'var month = date.getMonth()+ 1;' – AndyD273

2

如果你正在瞄準新的瀏覽器,那麼你可以直接在JavaScript解析它像fujy或LeGrande顯示。但是,當你這樣做時,明白你傳遞的UTC日期將被轉換爲瀏覽器的本地時區。

如果您想要更大的靈活性和完整的瀏覽器兼容性,那麼您應該使用像moment.js這樣的庫。

// Parse it to a moment 
var m = moment("2013-04-01T19:45:11.000Z"); 

// Format it in local time in whatever format you want 
var s = m.format("YYYY-MM-DD HH:mm:ss") 

// Or treat it as UTC and then format it 
var s = m.utc().format("YYYY-MM-DD HH:mm:ss")