2016-08-15 126 views
1

添加小時時間戳類型字段我想一個小時在PHP中添加時間戳格式如何從MySQL數據庫

這是我一直想這整個時間:在我的數據庫

我有一個名爲ts的字段,如時間戳(它是一個可捕獲CURRENT_TIMESTAMP的時間戳字段)。 然後我在codeigniter的foreach顯示我的結果。在我的結果中,我回顯ts變量,但它捕獲的小時數是錯誤的,所以我想改變時間並添加2小時。

這是我曾嘗試代碼:

foreach($row as $reg){ 
    $timestamp = $reg->ts; 
    $date = new DateTime($timestamp); 
    $nTime = $date->modify('+2 hour'); 
    echo $nTime; 
} 

它給了我這個錯誤:在使用DateTime對象的

A PHP Error was encountered Severity: 4096Message: Object of class DateTime could not be converted to stringFilename: libraries/Table.phpLine Number: 353

+0

你應該解決這個插入,也許? – Tpojka

回答

2

小錯誤。

foreach($row as $reg){ 
    $date = new DateTime(); 
    $date->setTimestamp($reg->ts); 
    $date->modify('+2 hour'); 
    echo $date->format('Y-m-d H:i:s'); 
} 

您可能想要爲日期和時間使用不同的格式!添加時間的

+0

它給我2小時的時間,而不是'$ timestamp'的時間 – learningbyexample

+0

美國/墨西哥城市時區 – learningbyexample

+0

CDT(中央夏令時)UTC/GMT -5小時 – learningbyexample

2

實施例迄今

$nTime = date("Y-m-d H:i:s", strtotime('+2 hours')) 

Notedate("Y-m-d H:i:s") used to set TIMESTAMP manually


你的情況

foreach($row as $reg){ 
    $timestamp = date_create('2016-08-16 01:30:00'); 
    $date = new DateTime(date_format($timestamp,"Y/m/d H:i:s")); // 2016-08-16 01:30:00 
    $nTime = date_modify($date, "+2 hours"); 
    echo date_format($nTime,"Y/m/d H:i:s"); // Output will be 2016-08-16 03:30:00 
} 

輸出

enter image description here


你提到「的變量,但它抓住了小時是錯誤的」,在你的問題。這可能是你必須設置date_default_timezone_set("Country/City")

+1

爲什麼你會嘗試用完全不同的答案來回答這個問題? OP的問題只是一個簡單的方法在日期時間類中使用 – Ghost

+0

@Ghost現在似乎我與他的問題有關。感謝您的提示 –

+0

您可能想要測試DateTime功能。它不工作。您無法使用時間戳初始化DateTime對象! – RiggsFolly