我正在使用strtotime将日期转换为unixtime戳。 年,日期和日的编码值不同,我正在使用下面的代码来生成时间戳。 通用标签

上面的代码为我打印:-27648000。如果年份高于1970,则会打印出正面结果。如果有人可以帮助我,我仍在学习时间戳。主要目的是将日期转换为Unix时间戳。

问题是为什么它给出否定的结果,我编码不好吗??我也尝试过mktime,但是结果还是一样。

谢谢, 坦美(Tanmay)

有帮助吗?

解决方案

这与Unix时代有关。

请参阅: date() time()

时间戳的有效范围通常是格林尼治标准时间1901年12月13日星期五20:45:54 GMT到格林尼治标准时间2038年1月19日星期二03:14:07。(这些日期对应于32位带符号整数的最小值和最大值)。但是,在PHP 5.1.0之前,此范围在某些系统上从01-01-1970限制为19-01-2038

其他提示

这是预期的行为。

strtotime 返回UNIX时间戳,即自1970年1月1日以来的秒数(不考虑considering秒)。对于之前的日期,它将返回负数。

Unix时间从1970年1月1日午夜开始。因此,在此之前的任何日期都会导致返回负值。

这是Unix时间戳。Unix / PHP的基准日期是1970年1月1日美国标准时间00:00,时间戳以秒为单位。如果为负,则是基准日期之前的秒数;如果为正数,则为秒数

我还在学习时间戳,

googleunix timestamp-> http://en.wikipedia.org/wiki/Unix_time

定义为自午夜多点协调世界时(UTC)开始经过的秒数 1970年1月1日

http://en.wikipedia.org/wiki/Unix_time

Unix时间,或POSIX时间,是一种用于描述时间点的系统,时间点定义为自1970年1月1日午夜多点协调世界时(UTC)起经过的秒数,不计算leap秒。它不仅在类Unix操作系统中得到广泛使用,而且在许多其他计算系统和文件格式中也得到广泛使用。它既不是时间的线性表示,也不是UTC的真实表示(尽管经常会误以为两者),因为它表示的时间是UTC,但不表示标准UTC seconds秒(例如1998年12月31日23:59:60)...

1970年1月1日之前的时间是负值,因为它们发生在UTC开始之前。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top