首页 > 解决方案 > 与自定义格式的日期差异

问题描述

我知道这里有很多,但是对于我阅读和测试的许多文章来说,这根本行不通..

我正在使用 ACF 保存日期,例如 dmy 和阅读。

当我进行这种类型的比较时,它只适用于当月。无论我做什么,这都是我所做的有效的工作,请问有什么建议吗?

if(strtotime(date('d.m.y')) > strtotime($cd_date_from)) {
   $output .= ' class="event-passed"';
}

这意味着我只隐藏了日期早于今天的表格行上的事件(显示今天)。如果日期是 15.03.19 或 28.03.19,它会显示,但如果是 15.04.19(其他月份)则不会。

先感谢您

标签: phpdatetime

解决方案


m/d/y 或 dmy 格式的日期通过查看各个组件之间的分隔符来消除歧义:如果分隔符是斜杠 (/),则假定为美式 m/d/y;而如果分隔符是破折号 (-) 或点 (.),则假定为欧洲 dmy 格式。但是,如果年份以两位数格式给出并且分隔符是破折号 (-),则日期字符串将被解析为 ymd。

为避免潜在的歧义,最好尽可能使用 ISO 8601 (YYYY-MM-DD) 日期或 DateTime::createFromFormat()。

http://php.net/manual/en/function.strtotime.php

利用:

if(strtotime(date('Y-m-d')) > strtotime($cd_date_from)) {
   $output .= ' class="event-passed"';
}

并将Y-m-d 格式值传递给$cd_date_from


推荐阅读