[英]Given date as parameter retrieve month and year
在PHP中,無論我請求什么時間,我都希望系統自動獲取固定日期(第14個)。
問題 :那么我是否需要為此編寫一個自定義函數,或者我可以使用任何內置函數?
我還提供了一些示例,如下所示:
A =當前日期(輸入)
B =系統輸出
方案
情況1
一個:2017-03-30
乙:2017-03-14
情況二
一個:2017-05-31
乙:2017-05-14
情況3
一個:2017-06-03
乙: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';
您可以使用以下命令在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')
您可以使用此:
select DAY(DATE_FORMAT("2017-06-03",'%Y-%m-%d'));
+-------------------------------------------+
| DAY(DATE_FORMAT("2017-06-03",'%Y-%m-%d')) |
+-------------------------------------------+
| 3 |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.