前段时间做了苹果支付对账脚本,定时每天运行脚本,将数据放到数据表中以便日后使用。但...某段时间,服务器出了问题,脚本有几天没有运行,需求方想要补回来,而且顺便想要去年一整年的数据。。。
因此有了三种情况:
- 每天运行,获取两天前的数据(苹果接口能获取到最新的数据就是两天前的)
- 获取某天的数据
- 获取某一段时间的数据
想了下,增加了以下代码来满足三种情况:
$opt = getopt('s:e:d:');
$start = date("Y-m-d",strtotime("-2 days"));
$end = date("Y-m-d",strtotime("-2 days"));
if($opt['d']){
$start = $opt['d'];
$end = $opt['d'];
}
if($opt['s'] && $opt['e']){
$start = $opt['s'];
$end = $opt['e'];
}
$start = date("Y-m-d",strtotime($start));
$end = date("Y-m-d",strtotime($end));
for ($date = $start; $date <= $end; $date = date("Y-m-d",strtotime($data."+1 days"))) {
var_dump($date);
/**此处为执行代码**/
}
不输入参数,每天正常运行。
例:不输入参数(今日时间:2019-03-26),程序输出: string(10) "2019-03-24"
输入-s、-e ,获取某段时间的数据。
例:输入-s 2019-03-22 -e 2019-03-24 程序输出: string(10) "2019-03-22"string(10) "2019-03-23"string(10) "2019-03-24"
输入-d,获取某天的数据。
例:输入-d 2019-03-23 程序输出:string(10) "2019-03-23"