2013-10-13 12 views
8

にタイムスタンプするためにこの文字列を変換する:「13/10 15:00」と私はそれがタイムスタンプに変換したいと思いますが、私はこれを行うとき:私はこの文字列を持っているPHP

 $timestamp = strtotime("13/10 15:00"); 

それは空の値を返します。

+0

のstrtotimeは絶対確実ではありません - あなたは形式を知っていれば、あなたが使用する必要があります[DateTime :: createFromFormat](http://php.net/manual/en/datetime.createfromformat.php)(PHP 5.3.x以上から入手可能)またはこれに類するもの。 (また、不足している年を提供する必要があります) –

+0

あなたの形式はサポートされていません! http://www.php.net/manual/en/datetime.formats.compound.php – WebNovice

+0

あなたの文字列はよく定義された日付または時刻ではありません –

答えて

34

エラーが返され、13番目の月の十日として13/10を変換しようとしています。

カスタム形式で日付文字列を解析したい場合は、日時を使用することをお勧めします:: createFromFormat()の代わりに:

$dtime = DateTime::createFromFormat("d/m G:i", "13/10 15:00"); 
$timestamp = $dtime->getTimestamp(); 
+0

'$ timestamp'変数にはタイムスタンプではなくDateTimeオブジェクトが含まれています。タイムスタンプを取得するには、 '$ timestamp-> getTimestamp();' '$ timestamp-> format( 'U');' –

+0

@Glavićを使用してください。これは本当に 'strtotime()'よりも信頼できます。ありがとう。 –

+6

ドキュメントへのリンク:http://php.net/manual/en/datetime.createfromformat.php – Doug

14
$timestamp = strtotime("13-10-2013 15:00"); 

これは重要であることができる:M/D/YまたはDMY形式で

日付は に様々な構成要素間のセパレータを見ることによって明確化されている:セパレータは スラッシュである場合( /)、アメリカのm/d/yが仮定される。 区切り記号がダッシュ( - )またはドット(。)の場合は、ヨーロッパのd-m-y形式 とみなされます。

潜在的なあいまいさを避けるには、できるだけISO 8601(YYYY-MM-DD) の日付またはDateTime :: createFromFormat()を使用することをお勧めします。あなたのコードstrtotime()

http://uk3.php.net/strtotime

関連する問題