PHP - strtotime() return 1970
PHP - strtotime() return 1970
以下代码片段:
echo date("d.m.Y-H:i:s", strtotime("01.01.2000-11:12:32"));
returns我:
01.01.1970-01:00:00
将“01.01.2000-11:12:32”转换为 time/date 对象以便与当前时间戳进行比较的正确方法是什么?
例如
if (date("d.m.Y-H:i:s") > date("d.m.Y-H:i:s", strtotime("01.01.2000-11:12:32"))) {
echo "future";
} else {
echo "past";
}
这是由于本地化。尝试提供不同的格式,因为格式很重要:
echo date("d.m.Y-H:i:s", strtotime("01/01/2000 11:12:32"));
echo date("d.m.Y-H:i:s", strtotime("01-01-2000 11:12:32"));
- 您不应使用
.
作为日期和月份分隔符。
- 您不能使用
-
分隔日期和时间。
如果您从其他来源获取输入,请尝试使用 str_replace
:
echo date("d.m.Y-H:i:s", strtotime(str_replace(array(".", "-"), array("/", " "), "01.01.2000-11:12:32")));
尝试将 .
替换为 -
:
echo date("d.m.Y-H:i:s", strtotime(str_replace('.', '-', "01.01.2000 11:12:32")));
同时删除日期和时间之间的 -
。
您可以使用DateTime::createFromFormat
$date = DateTime::createFromFormat('d.m.Y-H:i:s', '01.01.2000-11:12:32');
$now = new DateTime();
if ($now > $date) {
echo "future";
} else {
echo "past";
}
以下代码片段:
echo date("d.m.Y-H:i:s", strtotime("01.01.2000-11:12:32"));
returns我:
01.01.1970-01:00:00
将“01.01.2000-11:12:32”转换为 time/date 对象以便与当前时间戳进行比较的正确方法是什么?
例如
if (date("d.m.Y-H:i:s") > date("d.m.Y-H:i:s", strtotime("01.01.2000-11:12:32"))) {
echo "future";
} else {
echo "past";
}
这是由于本地化。尝试提供不同的格式,因为格式很重要:
echo date("d.m.Y-H:i:s", strtotime("01/01/2000 11:12:32"));
echo date("d.m.Y-H:i:s", strtotime("01-01-2000 11:12:32"));
- 您不应使用
.
作为日期和月份分隔符。 - 您不能使用
-
分隔日期和时间。
如果您从其他来源获取输入,请尝试使用 str_replace
:
echo date("d.m.Y-H:i:s", strtotime(str_replace(array(".", "-"), array("/", " "), "01.01.2000-11:12:32")));
尝试将 .
替换为 -
:
echo date("d.m.Y-H:i:s", strtotime(str_replace('.', '-', "01.01.2000 11:12:32")));
同时删除日期和时间之间的 -
。
您可以使用DateTime::createFromFormat
$date = DateTime::createFromFormat('d.m.Y-H:i:s', '01.01.2000-11:12:32');
$now = new DateTime();
if ($now > $date) {
echo "future";
} else {
echo "past";
}