最近專案目前沒有現在時間資料
只有過去資料(產生當日排程還沒寫完)
但是為了要讓當然排名正常
所以我想了一個寫指定抓固定日期方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
function fakeDay( $nowDay = null ){ if(!isset($nowDay)){ $nowDay = date('Y-m-d'); } $today = $nowDay; $firstday = '2018-01-01'; $lastday = '2018-12-31'; $firstday_unixday = strtotime( $firstday ) / (60*60*24); $lastday_unixday = strtotime( $lastday ) / (60*60*24);
$range = ($lastday_unixday - $firstday_unixday + 1 ) > 0 ? ($lastday_unixday - $firstday_unixday + 1 ) : 1;
$add_date = (strtotime($today)/(60*60*24)) % $range;
$fake_today = date('Y-m-d', strtotime("$firstday + $add_date day")); echo $fake_today; }
echo fakeDay() . "\n"; echo fakeDay(date('Y-m-d',strtotime('now + 1 day'))) . "\n";
|
http://sandbox.onlinephpfunctions.com/code/10c72c5b521557c14f61d73e702864037a9d2d52
簡單小記
- PHP 參照運算式不能寫在 function 裡面,如這邊問題
- 由於 php function 能設定預設值,但沒辦法
function fakeDay($nowDay = date('Y-m-d')){...}
正常會寫 isset()去做預設值方法
參考連結:
date - how to pass current year as default argument in php function - Stack Overflow