-->

为什么strotime返回PHP负值?(why strotime returns negative

2019-09-29 17:02发布

我使用的strtotime的日期转换为unixtime邮票。 年,日期和星期之际,不同价值观的代码,我使用下面的代码产生的时间戳。

$year  = '1961';
$month = '2';
$day   = '15';

$date  = $year."-".$month."-".$day;

echo strtotime($date);

上面的代码打印:-27648000我。 如果年份是1970年以上的它打印出积极的成果。 我仍然时间戳学习,如果任何人能帮助我。 主要目的是转换日期的UNIX时间戳。

问题是,为什么它赋予负的成绩,我是不是编码它不好!? 我也试过mktime,但还是同样的结果。

谢谢,Tanmay

Answer 1:

它与Unix的时代做。

请参阅: date()time()

时间戳的有效范围通常为星期五,1901年12月13日20时45分54秒GMT到星期二,2038年1月19日3点14分07秒GMT。 (这些是对应于最小和最大值为32位带符号整数的日期)。 然而,PHP 5.1.0之前,该范围是从01-01-1970限于19-01-2038在某些系统上



Answer 2:

这是预期的行为。

strtotime返回一个UNIX时间戳,秒自1970年1月1日(不考虑闰秒)的数目。 对于之前的日期,它会返回一个负数。



Answer 3:

Unix时间开始于Unix纪元是在1月1日,1970年午夜此之前,任何日期将导致返回负值。



Answer 4:

这是一个Unix时间戳。 了Unix / PHP基准日期是1970年1月1日00:00 UST,和时间戳以秒为单位。 如果为负,这是基准日之前的秒数; 如果阳性,后的秒数



Answer 5:

我仍然时间戳学习,

谷歌unix timestamp - > http://en.wikipedia.org/wiki/Unix_time

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



Answer 6:

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

Unix时间,或POSIX时间,是在时间点描述的系统中,定义为自1970年1月1日午夜proleptic协调世界时(UTC)经过的秒数,不计算闰秒的数目。 它被广泛使用,不仅在类Unix操作系统,而且在许多其它计算系统和文件格式。 这既不是时间的线性表示,也不UTC的真实表示(虽然它对于两个频繁误),因为它代表了时间为UTC但不表示标准UTC闰秒(例如1998年12月31日23:59:60 )...

1/1/1970之前的时间是负值,因为他们UTC开始前发生。



文章来源: why strotime returns negative value in php?