the_tag tag name get_the_tags first all php datetime date time

tag - Tiempo máximo() | PHP



the_tag() (6)

DateTime también parece usar 32 bits en servidores de 64 bits. Así que te metes en problemas.

Lo he resuelto de esta manera:

new DateTime("99999/12/31 00:00:00");

Debido a que, la fecha desborda la longitud máxima para DateTime, date usa el valor de posibilidad máximo y devuelve un objeto DateTime como este (inspeccionado con var_dump):

object(DateTime)#9 (3) { ["date"]=> string(19) "2031-09-12 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/Berlin" } }

No estoy seguro si difiere con las versiones de PHP. Lo he probado con la versión 5.4.

Es una pregunta un poco tonta, pero cuál sería el valor INT máximo de un time() y su fecha futura, por ejemplo,

1 de enero de 2999

¿Llegaría el tiempo () a ese valor? Ir por un valor de time() grande time() devolvería esto:

Jue 1 de enero de 1970 1:00 AM

Una fecha int normal

1287320788 - salidas fecha de hoy: Sun 17th Oct 2010 2:06 PM

Pero solo tengo curiosidad por la fecha más grande y la última fecha.


El camino más corto que conozco es conseguir la fecha de mañana:

fecha ("Ynj", strtotime ("+ 1 día"))

date("Ynj", PHP_INT_MAX) en sistemas de 64 bits da un valor potencialmente peligroso: 292277026596-12-4


En plataformas de 64 bits, PHP_INT_MAX no refleja el valor INT máximo para plataformas de 32 bits. Aquí está cómo conseguirlo:

$max32bitInt = PHP_INT_SIZE == 4 ? PHP_INT_MAX : PHP_INT_MAX>>32;

Si siempre estás usando una plataforma de 64 bits, solo usa:

PHP_INT_MAX>>32


La última marca de tiempo de entero de 32 bits se alcanzará el 19 de enero de 2038. Esto se conoce como el problema del año 2038 .


PHP almacena el número entero más alto que puede representar en la constante PHP_INT_MAX :

date(''Y-m-d H:i:s'', PHP_INT_MAX); // 2038-01-19 04:14:07

Si desea trabajar con fechas más allá de eso, considere usar la API DateTime , por ejemplo,

$dt = new DateTime(''1st January 2999''); $dt->add(DateInterval::createFromDateString(''+1 day'')); echo $dt->format(''Y-m-d H:i:s''); // 2999-01-02 00:00:00 echo $dt->format(''U''); // 32472226800


Recuerde, el problema Y2038 no se aplica en sistemas de 64 bits.