根据PHP中数据库列的日期名称和频率计算出日期

时间:2014-08-26 13:11:44

标签: php mysql

我有一个表格,显示客户的收集日期。在表格中,有七列和另一列,它们给出了收集的频率和收集计划开始的日期,如下所示:

|------------|------------|-------------|---------------|--------------|------------|--------------|------------|-----------|
|    start   | col_monday | col_tuesday | col_wednesday | col_thursday | col_friday | col_saturday | col_sunday | frequency |
|------------|------------|-------------|---------------|--------------|------------|--------------|------------|-----------|
| 2014-08-25 |     AM     |      AM     |       -       |      PM      |     PM     |       -      |     AM     |   Weekly  |

但是现在我想在列表中显示这一点,客户会看到这样的内容:

2014年8月25日(星期一) - AM Collection
2014年8月26日星期二 - AM Collection
2014年8月27日星期三 - 无收藏
2014年8月28日星期四 - PM Collection
2014年8月29日星期五 - PM收藏
2014年8月30日星期六 - 无收藏
2014年8月31日星期日 - AM Collection

这些将根据是基于开始日期的每周或每两周收集而进一步改变。因此,如果收集记录是每两周一次,根据开始日期,它将显示从2014年9月1日开始的一周没有收藏。

问题进一步复杂化,因为从中获取数据的系统相当陈旧且成本过高,这意味着必须在创建数据后完成工作。

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

我会用php编写,试试这个

我只是写了这个概念。

$sqlRun=mysql_query('SELECT *,DAYNAME(start) as dayname from tblname');
while($row=mysql_fetch_array($sqlRun)){
$daynameConcat='col_'.$row['dayname'];
    if($row[$daynameConcat]==""){
     echo $row['start'].$row['dayname'].' No Collection ';
    } else {
     echo $row['start'].$row['dayname'].' Collection ';
    }
}