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