Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不同的结果;“上个月的第一天”;_Php_Date - Fatal编程技术网

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格式的日期,第二个只是时间戳