-1

2012-04-11 12:49:14をunixtimeスタンプに変換するにはどうすればよいですか?

私が試してみました

$time = mktime("2012-04-11 12:59:14");

$time = strtotime("2012-04-11 12:59:14");

編集 基本的に更新時に私のデータベースはこのような日付/時刻を追加します。

2012-04-11 12:49:14

見つけた「timeago」関数を使用できるように、UNIXタイムスタンプに変換する必要があります。

私のテストは明らかにしました、

データベース入力->2012-04-1113:22:05に変換されます->1334143355->しかし、現在の時刻from(time())は-> 1334146956

なぜ一致しないのかわかりませんか?

4

4 に答える 4

4

ステートメント$time = strtotime("2012-04-11 12:59:14");は正常に機能しています。

行う

echo $time;

あなたの宣言の後。

于 2012-04-11T12:09:00.130 に答える
2

時間オフセットの不一致(おそらく夏時間)の問題のように聞こえます。時間オフセットの不一致を回避するために、すべてPHPまたはMySQLですべてを実行するのが常に最善です。

1334146484 - 1334142872 = 3612s = 1h 12s

UNIXタイムスタンプまたは日時のどちらとして保存するかによって、データを挿入または取得するときにUNIX_TIMESTAMPを使用する必要があります-

INSERT INTO `table` (date_field) VALUES (UNIX_TIMESTAMP('2012-04-11 12:59:14'));

SELECT UNIX_TIMESTAMP(date_field) FROM `table`;
于 2012-04-11T12:38:04.457 に答える
1

違いは、異なるタイムゾーンにあることによるものだと思います。違いは、期待される結果から多かれ少なかれ+1時間です。タイムゾーンまたはUTCから時間を記録/取得する場合のように、必要な時間をより具体的にする必要があります。

于 2012-04-11T12:37:35.630 に答える
0

$time = strtotime("2012-04-11 12:59:14");正しいオプションです。

于 2012-04-11T12:42:57.160 に答える