付款天数之间的日期排序

时间:2015-08-10 19:16:10

标签: php mysql arrays date strtotime

我有一组记录,每个记录都有一个日期时间(2015-01-01 00:00:00)。我希望能够将此数组拆分为介于paydates之间的记录。

我将使用的示例付费日期是第25个,例如一个月的开始将是"在该月25日或之前的最后一个工作日" - 意味着如果一个月的25号是一个周末,我们会想要那个从上一个工作日开始的月份(意思是星期五)。

最终,我希望能够对记录进行排序:

2015年7月 [6月25日 - 7月23日]

  • 记录1 - 2015-06-27 00:00:00
  • 记录2 - 2015 07-15 00:00:00

2015年8月 [7月24日 - 8月24日]

  • 记录1 - 2015-07-25 00:00:00
  • 记录2 - 2015 08-09 00:00:00

到目前为止,我已经构建了这个数组(使用Medoo框架来处理记录):

$paydate = '25th';

// Testing July Dates
$monthNum  = 6;
$monthName = date('F', mktime(0, 0, 0, $monthNum, 10));
$nextMonthName = date('F', mktime(0, 0, 0, $monthNum+1, 10));

$dates = array(

    array(...),

    array(
        "name" => "July",
        "start" => date('Y-m-d 00:00:00', strtotime('last weekday ' . $paydate . $monthName . ' 2015')),
        "end" => date('Y-m-d H:i:s', strtotime('last weekday ' . $paydate . $nextMonthName . ' 2015') - 1),
    ),

    array(...),

);

其次是:

    foreach ($dates as $date) {

        // get this month's records

        $thismonthsrecords = $database->select('records',
            [...],

            [...],

            [
                'datetime[<>]' => [$date['start'], $date['end']]
            ]

        );

目前的问题:

  • 仅手动(显然)。
  • 上周工作日,即使该日期已经是最后一个工作日,X也会给我最后一个工作日,所以给它一个星期二25日会把它变成星期一24日。

0 个答案:

没有答案