web-dev-qa-db-fra.com

Que s'est-il passé le 31 décembre 1969 à 7h00 PM

Chaque fois en PHP quand je crée une variable comme celle-ci:

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

et en quelque sorte row['date'] se trouve être 0, la date Dec 31 1969 at 7:00 PM s'affiche à l'écran? Google ne me dit pas grand-chose, je me demandais si cette date avait une signification.

26
David

L'époque Unix est l'heure 00:00:00 UTC au 1er janvier 1970. C'est le point de référence pour tous les horodatages. Lorsque vous utilisez les fonctions date/heure de PHP, vous travaillez toujours avec le nombre de secondes écoulées depuis l'époque. L'heure 0 correspond à l'époque et vous (ou votre serveur Web) devez être sur la côte est des États-Unis, soit 5 heures de retard sur l'heure UTC.

44
echo

Je trouve drôle que pas une seule réponse ici n'ait tenté de répondre à votre question réelle, qui était (si je peux paraphraser) "Quelle est la signification de la date réelle de l'époque d'Unix"?

Je ne suis pas un expert en la matière mais, fondamentalement, si je comprends bien, le concept de l'époque Epoch a été inventé en 1971. Les programmeurs ont choisi la date arbitraire du 1er janvier 1971 GMT comme heure Epoch. Cela était dû en partie au fait que les ordinateurs plus anciens ne pouvaient pas gérer de grands nombres, la date devait donc être récente. Par la suite, le temps Epoch a été ajusté pour être le 1er janvier 1970 afin d'être un nombre rond et agréable.

Donc, fondamentalement, rien ne s'est "produit" à cette date. C'était une date arbitraire choisie en fonction de l'heure d'origine du travail effectué.

23
T Nguyen

horodatages Unix sont mesurés en "temps depuis le époque Unix ", qui est minuit GMT à la fin du 31 décembre 1969 (alias 00:00 GMT le 1er janvier 1970). Comme vous semblez être à l'heure normale de l'Est, qui est GMT-5, vous obtenez 19 heures le 31 décembre 1969 pour une valeur d'horodatage Unix de 0.

6
Amber

Laissez-moi deviner: vous vivez sur la côte est des États-Unis?

PHP, comme de nombreux autres systèmes, utilise Epoque Unix pour mesurer le temps, c'est-à-dire qu'une valeur de 0 représente le 1er janvier 1970, minuit UTC - qui est la même que le 31 décembre 1969 à 7h00 PM Heure normale de l'Est.

4

Un format dans lequel les objets de date sont stockés est le temps en secondes qui s'est écoulé depuis une heure de début arbitraire. Demander une version formatée de "0" revient à demander une heure de début arbitraire. Je ne me souviens pas pourquoi cette date a été choisie, mais je suis sûr que Wikipédia le fait. Voir l'article sur le temps Unix ci-dessous.

Lisez sur Unix Time

1