Php 不同的结果;“上个月的第一天”;
为什么我从中得到不同的结果Php 不同的结果;“上个月的第一天”;,php,date,Php,Date,为什么我从中得到不同的结果 var_dump(strtotime(date('d.m.Y',strtotime("first day of previous month")))); 及 结果是: int(1396303200)和 int(1396364471)日期()的格式很重要,因为strotime会根据具体情况对其进行不同的解释。坚持YYYY-MM-DD等标准格式,您将获得预期的结果 在您的情况下,您可以使用d.m.Y,这将为您提供2014年4月1日。那是四月一日还是一月四日?PHP不知道
var_dump(strtotime(date('d.m.Y',strtotime("first day of previous month"))));
及
结果是:
int(1396303200)和
int(1396364471)日期()的格式很重要,因为strotime会根据具体情况对其进行不同的解释。坚持YYYY-MM-DD等标准格式,您将获得预期的结果
在您的情况下,您可以使用d.m.Y
,这将为您提供2014年4月1日
。那是四月一日还是一月四日?PHP不知道,所以在本例中是猜测。如果使用Y-m-d
,您将得到预期的结果,因为这种格式对PHP来说并不含糊
date()
的格式很重要,因为strotime会根据具体情况对其进行不同的解释。坚持YYYY-MM-DD等标准格式,您将获得预期的结果
在您的情况下,您可以使用d.m.Y
,这将为您提供2014年4月1日
。那是四月一日还是一月四日?PHP不知道,所以在本例中是猜测。如果使用Y-m-d
,您将得到预期的结果,因为这种格式对PHP来说并不含糊
使用date('d.m.Y')将切断小时、分钟和秒。这样就把午夜的时间戳还给你了
echo date('d.m.Y',strtotime("first day of previous month"));// 1.4.2014
echo date('d.m.Y H:i:s',strtotime("first day of previous month"));// 1.4.2014 17:26
echo date('d.m.Y H:i:s',strtotime("1.4.2014"));// 1.4.2014 00:00:00
如果您使用strotime而不通过日期对其进行过滤,它将根据当前时间返回小时、分钟和秒。在这里,你在午夜后17小时左右运行了脚本
echo date('d.m.Y',strtotime("first day of previous month"));// 1.4.2014
echo date('d.m.Y H:i:s',strtotime("first day of previous month"));// 1.4.2014 17:26
echo date('d.m.Y H:i:s',strtotime("1.4.2014"));// 1.4.2014 00:00:00
使用date('d.m.Y')将切断小时、分钟和秒。这样就把午夜的时间戳还给你了
echo date('d.m.Y',strtotime("first day of previous month"));// 1.4.2014
echo date('d.m.Y H:i:s',strtotime("first day of previous month"));// 1.4.2014 17:26
echo date('d.m.Y H:i:s',strtotime("1.4.2014"));// 1.4.2014 00:00:00
如果您使用strotime而不通过日期对其进行过滤,它将根据当前时间返回小时、分钟和秒。在这里,你在午夜后17小时左右运行了脚本
echo date('d.m.Y',strtotime("first day of previous month"));// 1.4.2014
echo date('d.m.Y H:i:s',strtotime("first day of previous month"));// 1.4.2014 17:26
echo date('d.m.Y H:i:s',strtotime("1.4.2014"));// 1.4.2014 00:00:00
这与
strotime()
如何解释日期字符串有关
从:
通过查看各个组件之间的分隔符,可以消除m/d/y或d-m-y格式的日期歧义:如果分隔符是斜杠(/),则假定为美式m/d/y;如果分隔符是破折号(-)或点(.),则假定为欧洲d-m-y格式。为避免潜在的歧义,最好尽可能使用ISO 8601(YYYY-MM-DD)日期或DateTime::createFromFormat()
让我们看看时间戳值对应于什么:
echo date('r', 1396303200) . "\n";
echo date('r', 1396364471);
输出:
Tue, 01 Apr 2014 03:30:00 +0530
Tue, 01 Apr 2014 20:31:11 +0530
请参阅以下var\u dump()
语句的输出:
var_dump(date('d.m.Y',strtotime("first day of previous month")));
它输出:
string(10) "01.04.2014"
这里的分隔符是一个点,因此strotime()
将把日期解释为DD-MM-YYYY
格式
为避免此类歧义,请始终使用 这与
strotime()
如何解释日期字符串有关
从:
通过查看各个组件之间的分隔符,可以消除m/d/y或d-m-y格式的日期歧义:如果分隔符是斜杠(/),则假定为美式m/d/y;如果分隔符是破折号(-)或点(.),则假定为欧洲d-m-y格式。为避免潜在的歧义,最好尽可能使用ISO 8601(YYYY-MM-DD)日期或DateTime::createFromFormat()
让我们看看时间戳值对应于什么:
echo date('r', 1396303200) . "\n";
echo date('r', 1396364471);
输出:
Tue, 01 Apr 2014 03:30:00 +0530
Tue, 01 Apr 2014 20:31:11 +0530
请参阅以下var\u dump()
语句的输出:
var_dump(date('d.m.Y',strtotime("first day of previous month")));
它输出:
string(10) "01.04.2014"
这里的分隔符是一个点,因此strotime()
将把日期解释为DD-MM-YYYY
格式
为避免此类歧义,请始终使用 第一个是d.m.Y格式的日期,第二个只是时间戳。第一个是d.m.Y格式的日期,第二个只是时间戳