2015-07-22 121 views
-1

我正在使用以下函數將時間轉換爲字符串。時間戳需要1970 | PHP

function datetime_to_text($datetime = ""){ 
    $d_t = strtotime($datetime); 
    return strftime("%B %d, %Y at %I:%M %p", $d_t); 
} 

MYSQL字段類型是timestamp

我用上面的功能datetime_to_text($article['article_time']);

輸出是January 01, 1970 at 01:00 AM

+0

它發生如果'$ article ['article_time']'值不正確。它的價值是什麼? –

+0

1970-01-01是'Unix epoch'這意味着你的輸入是空的 - >看到這個:http://www.php.net/manual/en/datetime.createfromformat.php –

+0

'$ article [' article_time']'可能是NULL或空字符串。 'php5 -r'echo strftime(「%B%d,%Y at%I:%M%p」,strtotime(null));''給出: 1970年1月1日上午01:00% – marcolz

回答

1

Strtotimes回報

成功則返回時間戳,否則返回FALSE。在PHP 5.1.0之前,此函數在失敗時將返回-1。

這似乎是功能失敗並返回false。當傳遞給期望int的函數時。假強制轉換爲0。

時間戳0是Unix紀元這是1970年一月的檢查

爲的strtotime功能衰竭和處理它的第一次。

1

因爲你傳遞$ datetime變量的值不是日期格式。 請嘗試下面的代碼

function datetime_to_text($datetime){ 

    $datetime = date("Y-m-d H:i:s"); 

    $d_t = strtotime($datetime); 
    $d_t = trim($d_t); 

    echo strftime("%B %d, %Y at %I:%M %p", $d_t); 

} 

$ex_date = date("Y-m-d H:i:s"); 

datetime_to_text($ex_date);