我想给客户看一条关于这个月到期金额的信息,这样他就可以续签了。续订时间从到期金额的最后一个月开始,即:
$renewDate = date("Y-m-d", strtotime("-1 month", $currentdate));
我有过
到期日: Amount
2019年-11-31: 15
2019-11-22: 20
2020年-5-12: 30
2019年-11-2: 10
我如何才能只收取那些不少于续订日期并且在最后一个月的范围内的款项。
发布于 2019-10-31 13:43:20
通过玩“天使回答”,我明白了:
$arr = [
0=>[
'date' => '2019-12-1',
'amount' => 15
],
1=>[
'date' => '2019-11-31',
'amount' => 22
],
2=>[
'date' => '2019-11-27',
'amount' => 22
],
3=>[
'date' => '2019-11-12',
'amount' => 33
],
4=>[
'date' => '2019-10-2',
'amount' => 6
],
];
$data = [];
foreach ($arr as $key => $value) {
if(strtotime(date('Y-m-d')) <= strtotime($value['date']) &&
strtotime(date('Y-m-d').'+1 month') >= strtotime($value['date']))
{
$data[] = $value;
}
}
echo "<pre>";
print_r($data);
echo "<pre>";
发布于 2019-10-31 12:17:35
让我们假设您有一个具有过期日期的数组:
$arr = [
0=>[
'date' => '2019-12-31',
'amount' => 15
],
1=>[
'date' => '2019-12-22',
'amount' => 22
],
2=>[
'date' => '2020-5-12',
'amount' => 33
],
3=>[
'date' => '2019-10-2',
'amount' => 6
],
];
然后循环遍历数组,获取每个日期并通过子串1个月将其与strtotime()进行转换,并将其与2个条件进行比较--如果日期大于今天日期的strtotime(),而小于今天日期+1个月的strtotime(),则满足范围条件并保存数据:
$data = [];
foreach ($arr as $key => $value) {
if(strtotime(date('Y-m-d')) <= strtotime($value['date'].'-1 month') &&
strtotime(date('Y-m-d').'+1 month') >= strtotime($value['date'].'-1 month'))
{
$data[] = $value;
}
}
var_dump($data);
https://stackoverflow.com/questions/58640997
复制相似问题