Contents

隨機當天指定固定日期方法

Contents

最近專案目前沒有現在時間資料
只有過去資料(產生當日排程還沒寫完)
但是為了要讓當然排名正常
所以我想了一個寫指定抓固定日期方法

 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

簡單小記

  1. PHP 參照運算式不能寫在 function 裡面,如這邊問題
  2. 由於 php function 能設定預設值,但沒辦法function fakeDay($nowDay = date('Y-m-d')){...}
    正常會寫 isset()去做預設值方法

參考連結:
date - how to pass current year as default argument in php function - Stack Overflow