什么是Unix时间戳,为什么要使用它?

2021/01/31 06:21 · php ·  · 0评论

什么是Unix时间戳?在PHP中,使用日期时,该函数strtotime()输出一些整数值-那是什么?我尝试了解这一点,但无法获得满意的答案,尤其是为什么我们需要使用转换日期strtotime()

什么是Unix时间戳

简而言之,Unix时间戳是一种跟踪时间(以秒为单位)的方式。此计数从1970年1月1日UTC的Unix Epoch开始。因此,Unix时间戳仅仅是特定日期和Unix Epoch之间的秒数还应该指出的是,无论您位于全球何处,该时间点在技术上都不会改变。这对于计算机系统在联机和客户端动态和分布式应用程序中跟踪和排序日期信息非常有用。许多网站管理员使用Unix时间戳的原因是它们可以一次代表所有时区。有关更多信息,请阅读Wikipedia文章

什么是strtotime()有用的,有什么用

顾名思义,strtotime()函数用于将日期字符串转换为Unix时间戳(str到time)。

从[PHP手册文档strtotime()] 2中

strtotime —将任何英语文本日期时间描述解析为Unix时间戳

例如,假设您要获取date的Unix时间戳25 December 2013,则可以这样使用strtotime()

echo strtotime("25 December 2013"), "\n";       // => 1387909800

strtotime()还可以处理相对的时间和日期格式。例如,考虑以下内容:

echo strtotime("+1 month"), "\n";               // => 1390980039
echo strtotime("last day of next month"), "\n"; // => 1391152839

这些是一些基本示例。strtotime()也可以处理非常复杂的日期格式。请参阅文档以获取更多信息。

我应该何时使用时间戳记

Unix时间戳的解释与区域无关,并且是从相同的时间点计算的,与时区无关。如果您有一个在多个时区使用的Web应用程序,并且需要日期/时间来反映各个用户的设置,请使用时间戳记。

在的情况下strtotime(),它通常用于在日期格式之间进行转换。由于strtotime()几乎可以解析任何日期字符串,因此可以将日期字符串转换为时间戳。有了时间戳后,您可以使用date()或类似功能随意格式化它

局限性 strtotime()

在32位系统上,整数的最大值为2,147,483,647。可以用这种方式表示的最远时间是2038年1月19日星期二的UTC时间03:14:07。这也称为2038年问题

请参阅PHP手册中的以下说明

时间戳记的有效范围通常为1901年12月13日星期五20:45:54 UTC到2038年1月19日星期二03:14:07 UTC。(这些日期与32位带符号整数的最小值和最大值相对应。)此外,并非所有平台都支持负时间戳,因此,日期范围不得超过Unix纪元。这意味着,例如1970年1月1日之前的日期将不适用于Windows,某些Linux发行版和其他一些操作系统。PHP 5.1.0和更高版本克服了此限制。

使用DateTime对象

如果您使用的日期超出了13 Dec 1901to19 Jan 2038范围,请考虑使用PHP的DateTime对象,该对象可以处理更大范围的日期。在任一方向上,DateTime都可以表示约2930亿年。

DateTime类在> = 5.2.0的PHP版本上可用。如果您运行的PHP版本高于> = 5.2.0,则在处理日期和时间时应使用DateTime。这是最好的方法。如果您使用的是较旧的PHP版本,请先进行升级5.3.0之前的任何版本都是古老的。

这是一些有关DateTime的好文章:

和一本书的架子:

本文地址:http://php.askforanswer.com/shenmeshiunixshijianchuoweishenmeyaoshiyongta.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!