Surmonter la limitation de date de 2038 en PHP
En PHP, les dates sont généralement représentées à l'aide d'horodatages en millisecondes. Par conséquent, la date maximale représentable est le 19 janvier 2038, à 03:14:07 UTC. Cette limitation est due à l'entier signé de 32 bits utilisé pour stocker l'horodatage.
Cependant, il est possible de surmonter cette limitation si vous n'avez besoin de stocker que les composants de l'année, du mois et du jour d'une date sans en ce qui concerne l'heure de la journée. En supprimant ces informations supplémentaires, vous augmentez efficacement la plage de dates pouvant être représentées.
Pour mettre en œuvre cette approche, vous pouvez utiliser l'approche orientée objet suivante :
class Date { private $year; private $month; private $day; public function __construct($year, $month, $day) { $this->year = $year; $this->month = $month; $this->day = $day; } public function getYear() { return $this->year; } public function getMonth() { return $this->month; } public function getDay() { return $this->day; } public function toTimestamp() { return mktime(0, 0, 0, $this->month, $this->day, $this->year); } }
Cette classe vous permet de créer et de manipuler des dates sans vous fier aux horodatages de la classe DateTime. Vous pouvez effectuer des calculs de base tels que obtenir l'année, le mois ou le jour d'une date, et les convertir en horodatage si nécessaire.
En utilisant cette approche, vous pouvez surmonter la limitation de 2038 et calculer des dates lointaines. l'avenir selon les besoins. Notez cependant que cette méthode ne préserve pas les informations sur l’heure de la journée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!