當我嘗試將一個月添加到某個日期并且這是該月的最后一天時,我得到了這種奇怪的行為
$data = date("Y-m-d", $date); // $date is 1643583600and $data-> 2022-01-31
$duedate = new DateTime($data); // $duedate -> "2022-01-31 00:00:00.000000"
$duedate->modify(' 1 month'); // $duedate -> "2022-03-03 00:00:00.000000"
$m = $duedate->format('m'); // $m = 03
但是,如果出現以下情況,則不存在該問題:
- 我想給2022-02-28加一個月
- 開始日期不是月底
uj5u.com熱心網友回復:
使用當月的第一個日期而不是該月的最后一個日期。
date("2022-01-01")或者date("Y-m-01")
$data = date("2022-01-01"); // $date is 1643583600and $data-> 2022-01-01
$duedate = new DateTime($data); // $duedate -> "2022-01-01 00:00:00.000000"
$duedate->modify(' 1 month'); // $duedate -> "2022-02-02 00:00:00.000000"
$m = $duedate->format('m');
echo $data." ".$m;
輸出
2022-01-01 02
uj5u.com熱心網友回復:
如果你只對下個月的數字感興趣,你可以要求,first day of next month你會沒事的。
注意:如果您在前面加上時間戳,則可以直接將時間戳插入 DateTime@
$date=1643583600;
$duedate = new DateTime("@$date");
$duedate->modify("first day of next month");
echo $duedate->format('n');
輸出:2
uj5u.com熱心網友回復:
這種行為是因為沒有溢位。它嘗試添加一個月中的天數。如果您希望只獲得每個月的最后一天,您可以使用如下所示的t符號date,它不會給您。一個月中自動成為最后一天的天數:
<?php
for($i = 1; $i <= 12; $i){
echo date("Y-m-t", strtotime(date("Y") . "-". $i. "-01")),PHP_EOL;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/459858.html
上一篇:在pandas中整整半小時
