web-dev-qa-db-ja.com

1969年12月31日の7:00に何が起こったかPM

PHPのたびに、次のような変数を作成すると、

$date = strtotime($row['date']);
$date = date("M d Y \a\\t g:i A", $date); // Mmm dd YYYY at h:mm PM/AM

そして何とかrow['date']は偶然0で、日付はDec 31 1969 at 7:00 PMが画面に表示されますか?グーグルはあまり教えてくれません、この日付に何か意味があるのか​​と思っていました。

26
David

Unixエポックは、1970年1月1日の時刻00:00:00 UTCです。これは、すべてのタイムスタンプの基準点です。 PHPの日付/時刻関数を使用する場合、エポック以降の秒数を常に処理しています。時間0はエポックであり、ユーザー(またはWebサーバー)は米国の東海岸にいる必要があります。これはUTC時刻から5時間遅れています。

44
echo

ここでの単一の応答があなたの実際の質問に答えようとしなかったのは面白いと思います、それは(言い換えれば)「Unixエポック時刻の実際の日付の意味は何ですか?」

私はこのテーマの専門家ではありませんが、基本的には理解できるように、エポック時間の概念は1971年に発明されました。プログラマーは1971年1月1日の任意の日付をエポック時間に選択しました。これは部分的には、古いコンピューターは大きな数を処理できなかったため、日付は最近でなければなりませんでした。その後、エポック時間は1970年1月1日になるように調整され、ニースのラウンド数になりました。

したがって、基本的には、その日に「起こった」ことは何もありません。これは、行われた作業の元の時間に基づいて選択された任意の日付でした。

23
T Nguyen

nixタイムスタンプ は、「- nix Epoch 以降の時間」で測定されます。これは、1969年12月31日の終わりのグリニッジ標準時(グリニッジ標準時1970年1月1日00:00)です。東部標準時(GMT-5)にいるように見えるため、1969年12月31日の午後7時にUNIXタイムスタンプ値が0になります。

6
Amber

推測させてください。あなたはアメリカの東海岸に住んでいますか?

他の多くのシステムと同様に、PHPは nix Epoch を使用して時間を測定します。つまり、0の値は1970年1月1日の午前0時を表します。これは1969年12月31日の7:00と同じですPM東部標準時。

4

日付オブジェクトが格納される1つの形式は、任意の開始時刻から経過した秒単位の時間です。 「0」のフォーマットされたバージョンを要求することは、その任意の開始時間を要求することに似ています。なぜその日付が選ばれたのかは覚えていませんが、ウィキペディアが選んだのは確かです。以下のUnix時間に関する記事を参照してください。

nix時間について読む

1