2012-04-06 55 views

回答

234

試試這個:

<?php 
$timestamp=1333699439; 
echo gmdate("Y-m-d\TH:i:s\Z", $timestamp); 
?> 
+25

請不要'gmdate()'以GMT格式返回日期/時間。 'date()'將返回本地日期/時間。 – 2015-12-10 16:37:51

+4

以上評論在這方面沒有意義。使用日期和第二個參數作爲時間戳,如答案中所示,不會在當地時區打印日期。日期將被打印時區信息被忽略,導致時間戳沒有時區信息。 gmdate和日期與第二個時間戳參數1333699439將打印相同的日期時間。 – 2016-04-07 13:09:46

+0

@MattK:由於Z表示UTC,這是有道理的。 Tinus:Unix時間戳不包含時區偏移量。 'date'和'gmdate'的輸出將根據TZ變量而有所不同(至少在* nix上) – 2016-05-03 14:05:08

92

使用日期函數date (string $format [, int $timestamp = time() ])

的格式轉換爲ISO 8601日期(PHP 5中添加)

使用date('c',time()) - 2012-04-06T12:45:47+05:30

使用date("Y-m-d\TH:i:s\Z",1333699439)得到2012-04-06T13:33:59Z

下面是一些格式的日期功能支持

<?php 
$today = date("F j, Y, g:i a");     // March 10, 2001, 5:16 pm 
$today = date("m.d.y");       // 03.10.01 
$today = date("j, n, Y");      // 10, 3, 2001 
$today = date("Ymd");       // 20010310 
$today = date('h-i-s, j-m-y, it is w Day');  // 05-16-18, 10-03-01, 1631 1618 6 Satpm01 
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day. 
$today = date("D M j G:i:s T Y");    // Sat Mar 10 17:16:18 MST 2001 
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');  // 17:03:18 m is month 
$today = date("H:i:s");       // 17:16:18 
?> 
+0

我該如何轉換'c'的具體時間戳?例如1333699439 – 2012-04-06 07:18:10

+1

date('c',1333699439) – 2012-04-06 07:19:19

+0

這解決了你的問題? – 2012-04-06 07:27:21

38

假設你重新使用PHP5.3,那麼處理日期的現代方式是通過本地DateTime class。爲了得到當前的時間,你可以叫

$currentTime = new DateTime(); 

從特定的時間戳創建一個DateTime對象(即不是現在)

$currentTime = DateTime::createFromFormat('U', $timestamp); 

爲了得到一個格式化字符串,你可以調用

$formattedString = $currentTime->format('c'); 

manual page here

+1

我該如何轉換具體的時間戳?例如1333699439 – 2012-04-06 07:17:28

+0

@Norse當然,我讀他的帖子。他需要的所有信息都在我的文章中。他所要做的只是閱讀DateTime對象的PHP文檔。我編輯了我的帖子,使其更清晰。 DateTime對象是使用PHP的方式,應鼓勵所有新手使用它。至今,我是唯一一個提供答案的人。順便說一句,我覺得你的評論有點侵略性,不太符合SO的精神。 – liquorvicar 2012-04-06 07:34:04

+0

@Ahmetvardar查看我的編輯,儘管所有這些都在我提供鏈接的PHP文檔中。我強烈建議你開始使用DateTime對象。它提供了極好的支持日期/時間,包括時區等 – liquorvicar 2012-04-06 07:35:11

11

設置一個默認時區,以得到正確的結果

<?php 
// set default timezone 
date_default_timezone_set('Europe/Berlin'); 

// timestamp 
$timestamp = 1307595105; 

// output 
echo date('d M Y H:i:s Z',$timestamp); 
echo date('c',$timestamp); 
?> 

在線轉換的幫助是非常重要的。

擁有所有語言Epoch & Unix時間戳。

+1

在ISO8601中,'Z'用於表示它是UTC時間,所以時區應該設置爲UTC時間 – 2016-05-03 14:10:30

1
<?php 
$timestamp=1486830234542; 
echo date('Y-m-d H:i:s', $timestamp/1000); 
?> 
0

我發現,在這次談話中的信息非常有用,我只是想補充我怎麼想通了,通過使用從我的MySQL數據庫的時間戳和一個小PHP

<?= date("Y-m-d\TH:i:s\+01:00",strtotime($column['loggedin'])) ?> 

產量爲: 2017-03-03T08:22:36 + 01:00

非常感謝Stewe你的回答對我來說是一個尤里卡。

相關問題