2013-07-13 24 views
1

我想在Codeigniter中將1373892900000轉換爲Monday 2013/07/15 8:55 AM如何將時間戳轉換爲codeigniter中的日期

不過,我一直用我寫的功能轉換的時間戳接收一個完全不同的結果,請注意:我需要根據不同的時區,以更改日期,這就是爲什麼我想是這樣寫 :從上面的功能

public function time_convert($timestamp){ 

     $this->load->helper('date'); 

     date_default_timezone_set('UTC'); 

     $daylight_saving = TRUE; 
     $timezone = "UM4"; //toronto or new york timezone 
     $time = gmt_to_local($timestamp, $timezone, $daylight_saving); 

     $final_time = standard_date('DATE_RFC822', $time); 
     return $final_time; 

    } 

結果是:Sat, 08 Dec 06 01:40:00 +0000

如果我不把date_default_timezone_set('UTC');在上面的功能,我得到這個日期,而不是Sat, 08 Dec 06 02:40:00 +0100。我的codeigniter似乎默認爲歐洲/柏林的時區。

任何人都可以請幫我糾正我可能犯的任何錯誤嗎?

回答

3

爲什麼不只是使用PHP的日期函數?

public function time_convert($timestamp){ 
    return date('l Y/m/d H:i', $timestamp); 
} 

對於不同的時區使用DateTime對象:

public function time_convert($timestamp, $timezone = 'UTC'){ 
    $datetime = new DateTime($timestamp, new DateTimeZone($timezone)); 
    return $datetime->format('l Y/m/d H:i'); 
} 

認爲,應該工作。注意:我認爲您至少需要TimeZone類的PHP 5.20版本。

+0

我需要根據不同的時區更改日期。 – led

+0

我添加了一些代碼來告訴你如何做到這一點。 – SharkofMirkwood

0
<?php 
$time_str=1373892900000; 
echo gmdate("fill with your format", $time_str); 
?> 

您的格式=在php中格式化您的時間,閱讀此頁面的詳細信息。

http://php.net/manual/en/function.date.php 
http://php.net/manual/en/function.gmdate.php 
0

看來好像的standard_date與DATE_ATOM格式的調用可以按照你:

echo unix_to_human(time(), true, 'us'); # returns 2013-07-12 08:01:02 AM, for example 

還有其他選項的格式,所列舉的鏈接頁面上一大堆。

0

該如何隱蔽時間戳日期很簡單:如果你想將其轉換爲這樣的格式

function unix_timestamp_to_human ($timestamp = "", $format = 'D d M Y - H:i:s') 
{ 
    if (empty($timestamp) || ! is_numeric($timestamp)) $timestamp = time(); 
    return ($timestamp) ? date($format, $timestamp) : date($format, $timestamp); 
} 

$unix_time = "1251208071"; 

echo unix_timestamp_to_human($unix_time); //Return: Tue 25 Aug 2009 - 14:47:51 

echo date('m/d/Y', 1299446702); 

到時間戳轉換爲人類可讀的格式試試這個: 2008-07-17T09:24:17Z比使用此方法

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

有關日期的詳細信息: http://php.net/manual/en/function.date.php

0

您的時間戳記來自客戶端上的JavaScript,我猜想,因爲它似乎以毫秒爲單位。 PHP時間戳在幾秒鐘內。因此,要得到你想要的答案,首先除以1000.

顯示全年會使問題更加明顯,因爲你會看到今年爲45,506。

相關問題