2

私はこのコードを試しました:

$dateFromDB = '2012-06-22T14:06:55+00:00';

$newDate = DateTime::createFromFormat('yyyy-MM-ddThh:mm:sszzz', $dateFromDB);
$date = $newDate->format('U'); // convert to timestamp

echo $date;

しかし、私にこのエラーを与えました:

致命的なエラー: 非オブジェクトでのメンバー関数 format() の呼び出し...

このコードの問題は何ですか?

4

4 に答える 4

3

DateTime を使用する必要がある場合は、手続き的な方法で試してください。

$dateFromDB = '2012-06-22T14:06:55+00:00';  
$timestamp = date_create_from_format('Y-m-d\TH:i:sP', $dateFromDB);
// To get Unix timespamp
echo date_format($timestamp, 'U');
// To get user-formated Date
echo date("d.m.Y H:i:s", date_format($timestamp, 'U'));
于 2012-10-30T15:14:15.157 に答える
2

strtotime()それをうまく解析してUnixタイムスタンプを返すことができるはずです。

<?php
$timestamp = strtotime('2012-06-22T14:06:55+00:00');

echo $timestamp;  // prints: 1340374015
于 2012-07-22T01:42:32.767 に答える
2

または、本当に DateTime を使用する必要がある場合

$dateFromDB = '2012-06-22T14:06:55+00:00';

$newDate = DateTime::createFromFormat('Y-m-d?H:i:sP', $dateFromDB);
$date = $newDate->format('U'); // convert to timestamp

echo $date;
于 2012-07-22T01:45:37.140 に答える
0

試す:

$date = strtotime($dateFromDB);
于 2012-07-22T01:43:14.410 に答える