以下代码段:
echo date("d.m.Y-H:i:s", strtotime("01.01.2000-11:12:32"));
给我回复:
01.01.1970-01:00:00
正确的转换方式" 01.01.2000-11:12:32"到时间/日期对象,以便将它与当前时间戳进行比较?
e.g。
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";
}
答案 0 :(得分:2)
这是由于本地化。尝试给出不同的格式,因为格式很重要:
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")));
答案 1 :(得分:1)
尝试将.
替换为-
:
echo date("d.m.Y-H:i:s", strtotime(str_replace('.', '-', "01.01.2000 11:12:32")));
同时在日期和时间之间移除-
。
答案 2 :(得分:1)
您可以使用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";
}