針對這個問題,我的需求自然是2月28日或2月29日,原先想的簡單,就是加乙個月:
<?php
$d = new datetime('2017-01-31');
$d->add(new dateinterval('p1m'));
echo
$d->format('y-m-d'); // 2017-03-03
?>
結果跑到3月份去了,php的datetime並不會產生想要的結果。接下來自然要去優化它(思路是月份加2,日期設定成1號,再減一天,就是下個月最後一天了):
$d = new datetime('2017-01-31');
$d->setdate($d->format('y'), $d->format('n') + 2, 1);
$d->sub(new dateinterval('p1d'));
echo $d->format('y-m-d') . php_eol; //
2017-02-28
已經得到想要的結果過了,大功告成!
注意:當遇到11月、12月時月份加2就是13、14了,setdate會相應的自動增加年份的
日期的計算
year 1985 month 11 day 13 birthday mktime 0,0,0,month,day,year nowdate mktime ageunix nowdate birthday age floor ageunix 60 60 24 365 echo 年齡 age 出現警告...
日期的計算
year 1985 month 11 day 13 birthday mktime 0,0,0,month,day,year nowdate mktime ageunix nowdate birthday age floor ageunix 60 60 24 365 echo 年齡 age 出現警告...
關於計算日期時間問題
新建記事本,字尾 vbs 兩個函式 時間函式datediff 時間間隔 和dateadd 時間相加 datediff interval,date1,date2 firstdayofweek firstweekofyear dateadd interval,number,date interval 引...