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

Php 什么是Unix时间戳,为什么要使用它?,php,timestamp,strtotime,Php,Timestamp,Strtotime,什么是Unix时间戳?在PHP中,处理日期时,函数strotime()输出一些整数值——这是什么?我试图了解这一点,但没有得到满意的答案,特别是为什么我们需要使用strotime()什么是Unix时间戳来转换日期 简单地说,Unix时间戳是一种将时间作为运行总秒数进行跟踪的方法。此计数从1970年1月1日UTC的Unix纪元开始。因此,Unix时间戳仅仅是特定日期和Unix纪元之间的秒数。还应该指出的是,从技术上讲,这一时间点不会改变,无论您位于地球上的哪个位置。这对于在线和客户端的动态和分布式

什么是Unix时间戳?在PHP中,处理日期时,函数
strotime()
输出一些整数值——这是什么?我试图了解这一点,但没有得到满意的答案,特别是为什么我们需要使用
strotime()

什么是Unix时间戳来转换日期 简单地说,Unix时间戳是一种将时间作为运行总秒数进行跟踪的方法。此计数从1970年1月1日UTC的Unix纪元开始。因此,Unix时间戳仅仅是特定日期和Unix纪元之间的秒数。还应该指出的是,从技术上讲,这一时间点不会改变,无论您位于地球上的哪个位置。这对于在线和客户端的动态和分布式应用程序中跟踪和排序日期信息的计算机系统非常有用。许多网站管理员之所以使用Unix时间戳,是因为它们可以同时表示所有时区。有关更多信息,请阅读

什么是strotime(),它有什么用处 顾名思义,
strotime()
函数用于将日期字符串转换为Unix时间戳(str-to-time)

从[PHP手册文档中的
strotime()
]中:

strotime-将任何英文文本datetime描述解析为Unix时间戳

例如,假设您想要获取2013年12月25日的Unix时间戳,那么您可以使用以下类似的
strotime()

echo strtotime("25 December 2013"), "\n";       // => 1387909800
strotime()
还可以处理相对的时间和日期格式。例如,考虑以下内容:

echo strtotime("+1 month"), "\n";               // => 1390980039
echo strtotime("last day of next month"), "\n"; // => 1391152839
这些是一些基本的例子
strotime()
也可以处理非常复杂的日期格式。有关更多信息,请参阅

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

对于strotime(),它主要用于在日期格式之间进行转换。由于
strotime()
几乎可以解析任何日期字符串,因此它用于将日期字符串转换为时间戳。一旦您有了时间戳,您就可以根据自己的意愿,使用或类似的函数对其进行格式化

strotime()的限制
在32位系统上,整数的最大值为2147483647。以这种方式表示的最长时间是2038年1月19日星期二03:14:07 UTC。这也被称为

请参见以下文档中的注释:

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

使用日期时间对象

如果你在<代码> 13 DEC 1901 < /代码>到<代码> 19 JAN 2038 <代码>范围,则考虑使用PHP的对象,这些对象可以使用更宽的日期范围。DateTime在两个方向上都可以代表大约2930亿年

DateTime类在PHP版本>=5.2.0上可用。如果您运行的PHP版本高于>=5.2.0,那么在处理日期和时间时应该使用DateTime。这是最好的方式。如果您使用的是较旧的PHP版本,已经升级了。5.3.0之前的任何东西都是古老的

  • 使用或创建对象。请注意,
    DateTime::createFromFormat()
    仅在PHP>=5.3上可用。使用此方法,您可以解析日期和时间奇怪的字符串,否则使用
    strotime()
  • 使用方法将
    DateTime
    对象转换为您可能需要使用的任何日期格式
以下是一些关于DateTime的好文章:

还有一本放在书架上的书:

  • (作者,PHP核心日期扩展的贡献者)

unix时间戳是从1970年1月1日到您自己调用时间戳的时间(以秒为单位)。从这里,您可以用多种语言提取日期
strotime()
只是为了使您能够将规范化日期转换为实际的unix时间戳,以实现跨语言/平台的兼容性。除此之外没什么其他的。$date=“2012-12-29”$日期=标准时间($date);echo$日期;输出是1356739200。你的意思是从1970年1月1日到2012年12月29日,秒数是1356739200。让你知道,20亿是有符号整数限制,无符号是40亿。