在PHP中,我希望系统自动获取固定日期(第14个),无论我要求什么时候。
问题: 那么我是否需要为此事编写自定义函数,或者是否有可以使用的内置函数?
我还提供了一些例子如下:
A =当前日期(输入)
B =系统输出
方案
案例1
答:2017-03-30
B:2017-03-14
案例2
答:2017-05-31
B:2017-05-14
案例3
答:2017-06-03
B:2017-05-14
PHP
$fulldate = date("Ymd");
$year = substr($fulldate,0,4);
$month = substr($fulldate,4,2);
$date = substr($fulldate,6,2);
if($date <= 14){
$month -= 1;
}
echo $year.$month.'14';
的MySQL
select * from table where DATE_FORMAT(my_date,'%Y%m%d') = $year.$month.'14';
答案 0 :(得分:1)
您可以使用
获取SQL中的“过去14个月”select concat_ws('-', year(now()), month(now()), 14) - interval (day(now()) <= 14) month
“技巧”就是这一部分:
- interval (day(now()) <= 14) month
仅当当前日期<= 14时才会减去一个月
所以你可以使用这个查询
select *
from `table`
where my_date = concat_ws('-', year(now()), month(now()), 14) - interval (day(now()) <= 14) month
没有在PHP中做任何事情。
使用PHP,您可以通过以下方式执行此操作:
$date = new DateTime();
$date->modify('-14 day');
$last14th = $date->format('Y-m-14');
echo $last14th;
$sql = "select * from `table` where my_date = '{$last14th}'";
<强>更新强>
查看我意识到的PHP代码,可以在SQL中使用相同的逻辑:
select date_format(now() - interval 14 day, '%Y-%m-14')