以下代码行在两个不同的服务器A和B上返回两个不同的输出:
echo date("M Y", strtotime("2015-01"));
echo date("M Y", strtotime("2015-02"));预期输出为“2015年1月”和“2015年2月”,这在服务器A上是正确的。
但是服务器B上的相同代码返回“2015年1月”和“2015年3月”的输出。
调试时,我发现服务器B上的strtotime函数总是返回每月当前日期(今天是第29天)的时间戳,这解释了为什么"2015-02“显示为”2015年3月“(因为没有2015年2月29日)。昨天,这段代码在两台服务器上返回相同的输出,因为2月28日是有效的,并被正确地转换到2015年2月。
从本质上说,在服务器A上,有效的代码是
echo date("M Y", strtotime("2015-01-01"));
echo date("M Y", strtotime("2015-02-01"));在服务器B上,有效代码是
echo date("M Y", strtotime("2015-01-29")); //or, strtotime("2015-01-[current day]")
echo date("M Y", strtotime("2015-02-29"));为什么这两个服务器之间会有这样的区别?
https://stackoverflow.com/questions/30536853
复制相似问题