Php 2038年,UNIX_TIMESTAMP()是否会因未签名的Int列而失败?
只要有可能,我总是小心地使用无符号值。因此,我所有的时间戳字段都没有签名。在我可能去世或至少退休很久之后,其他人可以处理2108年的问题,而不是像你们所有人在几十年后都将面临的那样处理2038年的错误 至少我是这么想的。然而,我注意到,在任何情况下,如果我依赖MySQL的超级方便的UNIX_TIMESTAMP()函数,而不是让PHP使用time()解析查询,那么我所有的努力都可能是完全无用的。如果UNIX_TIMESTAMP()足够聪明(或愚蠢)可以包装,以便在这段时间后仍然有用,那就太好了,但显然它只返回0。(一直以来,我都认为使用time()是愚蠢的,而让MySQL使用UNIX_TIMESTAMP()效率更高。) 在某些情况下,我一直在过渡到一个新的标准,我称之为“millitime”,它是自Unix纪元以64位数字存储以来的毫秒数。2.92亿年的毫秒精度似乎比2.92亿年的秒精度要好得多。由于大多数服务器每秒处理大量请求,因此具有这种精度非常重要,而我强调要考虑一个实际应用程序,用于管理未来3亿年的事件日期。(那时人类还会存在吗?)这方面似乎没有标准,所以我认为需要使用PHP从microtime()函数手动解析Php 2038年,UNIX_TIMESTAMP()是否会因未签名的Int列而失败?,php,mysql,time,unix-timestamp,milliseconds,Php,Mysql,Time,Unix Timestamp,Milliseconds,只要有可能,我总是小心地使用无符号值。因此,我所有的时间戳字段都没有签名。在我可能去世或至少退休很久之后,其他人可以处理2108年的问题,而不是像你们所有人在几十年后都将面临的那样处理2038年的错误 至少我是这么想的。然而,我注意到,在任何情况下,如果我依赖MySQL的超级方便的UNIX_TIMESTAMP()函数,而不是让PHP使用time()解析查询,那么我所有的努力都可能是完全无用的。如果UNIX_TIMESTAMP()足够聪明(或愚蠢)可以包装,以便在这段时间后仍然有用,那就太好了,但
function millitime () {
$a = microtime();
return substr($a, 11).$a[2].$a[3].$a[4];
}
所以我有几个问题:
这个问题有很多有用的资源,尽管大多数都与UNIX_TIMESTAMP()无关。对我所处理的大多数应用程序来说,环绕式(wrapp-around)是很好的,比0更有价值。我发现DATETIME很难处理(记不清细节),而且它还需要加倍的存储空间。我喜欢在每个表上保留多个时间戳,这样我就知道什么时候生成和更新内容,所以空间差异可能很大。那篇博文特别有用。我想知道是否有任何方法可以使它在查询中更具可读性,是否比使用PHP的time()更有效。