0

タイムスタンプを時刻と日付に変換しようとしていますが、以前にこれを行ったことがありますが、問題が発生しています。これは私が取得しているタイムスタンプの例です:

2013-07-22 22:22:55

しかし、使用して解析しようとすると

$date = date('d-m-Y', $update->timestamp);

次のエラーが発生します。

PHP エラーが発生しました 重大度:
通知メッセージ: 整形式でない数値が発生しました
ファイル名: parts/update_item.php
行番号: 13
PHP エラーが発生しました 重大度: 警告
メッセージ: date(): に依存するのは安全ではありませんシステムのタイムゾーン設定。date.timezone 設定または date_default_timezone_set() 関数を使用する必要があります。これらの方法のいずれかを使用してもこの警告が表示される場合は、タイムゾーン識別子のスペルが間違っている可能性があります。「MST/-7.0/no DST」の代わりに「America/Denver」を選択しました
ファイル名: parts/update_item.php
行番号: 13

4

5 に答える 5

2

strtotime日時を unix_timestamp に変換するために使用します。

$date = date('d-m-Y', strtotime($update->timestamp));
于 2013-07-26T05:04:01.913 に答える
1

次の関数を使用してデフォルトのタイムゾーンを設定してください。

date_default_timezone_set();

詳細については、リンクhttp://php.net/manual/en/function.date-default-timezone-set.phpにアクセスしてください。

また、次のコードを使用する必要があります。日付関数の 2 番目のパラメーターにタイムスタンプ値を入力する必要があるため、エラーが発生していますが、代わりに「2013-07-22 22:22:55」を渡しています。strtotime関数は、成功時にタイムスタンプを返します。

$date = date('d-m-Y', strtotime($update->timestamp));
于 2013-07-26T05:03:08.527 に答える
1

日付関数は、2 番目のパラメーターが数値のタイムスタンプ ( time() の戻り値など) であることを想定しています。「2013-07-22 22:22:55」文字列は数値ではなく文字列値であり、次のように変換する必要があります。最初に数値:

$date = date('d-m-Y', strtotime('2013-07-22 22:22:55'));

またはあなたの場合:

$date = date('d-m-Y', strtotime($update->timestamp));
于 2013-07-26T05:03:49.323 に答える
1

2013-07-22 22:22:55 はタイム スタンプではありません。

strtotime('2013-07-22 22:22:55');

于 2013-07-26T05:03:55.073 に答える
0

最初の日付の引数は Ymd にする必要があります

于 2013-07-26T05:03:06.120 に答える