2009-05-19 33 views
1

日付と時刻をフォーマットする関数を作成しようとしています。私はちょうど日付をフォーマットするほぼ同一の機能を持っています。その関数は正常に動作します。私はちょうど時間を使って日付をフォーマットしようとするいくつかのコードを追加しました。これは、「2009年5月18日21:50」のようなものを返す必要がありますが、私はこの警告を取得しています:ここで日付の書式設定の問題

Warning: mktime() expects parameter 6 to be long, string given in 
public_html/include/functions.php on line 421 

は、私が持っているコードです:それは出している何

function dateTimeFormat($dateIn) 
{ 
    $x = explode(" ",$dateIn); 
    $y = explode("-",$x[0]); 
    $z = explode(":",$x[1]); 

    $year = $y[0]; 
    $month = $y[1]; 
    $day = $y[2]; 
    $hour = $z[0]; 
    $min = $z[1]; 

    $dateOut =date("F j, Y h:i A", mktime($hour, $min, 0, $month, $day, $year)); 

    return $dateOut; 
} 

が間違っていますあまりにも。それは出し:

December 31, 1969 07:00 PM 

が、データベース内のタイムスタンプは

2009-05-18 05:07:39 

答えて

4

PHPはすでに完璧な日付の解析機能があります:strtotime()。これは、date()に渡すことができるUnixタイムスタンプを返します。

は、言い換えれば、あなたの関数は、これに減らすことができます。警告を処分したが、それはまだ間違って表示される

function dateTimeFormat($dateIn) 
{ 
    return date("F j, Y h:i A", strtotime($dateIn)); 
} 
+0

。 1969年12月31日07:00 PMですが、MySQLのタイムスタンプは2009-05-18 00:00:00です。 –

+0

私は問題を修正しました –

+0

ええと、どうですか?シェアしてください! – Jrgns