Php 为什么strotime(';2016-01-01';)会导致2015年1月1日?

Php 为什么strotime(';2016-01-01';)会导致2015年1月1日?,php,strtotime,Php,Strtotime,在我的应用程序中有一个报告错误,我在数据库返回的mysql日期使用strotime函数。直到今天出现了一个bug,这一切都很顺利 当我跑步时: date('j.n.o', strtotime('2016-01-01')) 出于某种原因,我得到了结果“1.1.2015” 但如果我跑 date('j.n.o', strtotime('2016-02-01')) 我得到了“1.2.2016”,这是正确的,但我不知道第一个示例失败的原因 我可以轻松地做一个变通来使这个工作正常,但我特别想知道为什么这

在我的应用程序中有一个报告错误,我在数据库返回的mysql日期使用strotime函数。直到今天出现了一个bug,这一切都很顺利

当我跑步时:

date('j.n.o', strtotime('2016-01-01'))
出于某种原因,我得到了结果“1.1.2015”

但如果我跑

date('j.n.o', strtotime('2016-02-01'))
我得到了“1.2.2016”,这是正确的,但我不知道第一个示例失败的原因


我可以轻松地做一个变通来使这个工作正常,但我特别想知道为什么这个函数会用这个输入返回如此奇怪的结果?我使用PHP5.3和7.0进行了检查,得到了相同的结果

尝试使用
Y
而不是
o

echo date('j.n.Y', strtotime('2016-01-01'));

o---ISO-8601年编号。该值与Y值相同,只是如果ISO周数(W)属于上一年或下一年,则使用该年。(在PHP 5.1.0中添加)

vs

Y---一年的完整数字表示,4位数字


尝试使用
Y
而不是
o
来表示年份

echo date('j.n.Y', strtotime('2016-01-01'));

o---ISO-8601年编号。该值与Y值相同,只是如果ISO周数(W)属于上一年或下一年,则使用该年。(在PHP 5.1.0中添加)

vs

Y---一年的完整数字表示,4位数字

试试这个:

PHP包含用于格式化给定日期或时间的内置日期函数。这些是,

日期( 日期格式()

此函数接受两个可选参数。i、 e.格式和时间戳。代码显示了PHP date()函数的示例

/以dd/mm/YYYY格式返回时间戳的日期 回音日期(“d-m-Y”,time())

试试这个:

PHP包含用于格式化给定日期或时间的内置日期函数。这些是,

日期( 日期格式()

此函数接受两个可选参数。i、 e.格式和时间戳。代码显示了PHP date()函数的示例

/以dd/mm/YYYY格式返回时间戳的日期
回音日期(“d-m-Y”,time())

o==ISO-8601年编号。该值与Y值相同,只是如果ISO周数(W)属于上一年或下一年,则使用该年。(添加到PHP5.1.0中)源:o==ISO-8601年编号。该值与Y值相同,只是如果ISO周数(W)属于上一年或下一年,则使用该年。(在PHP5.1.0中添加)来源:就是这样。我确信时间是个问题。谢谢成功了。我确信时间是个问题。谢谢