函数问题

伟洪winni 2017-06-14 08:44:35
求一个函数,能根据当前时间返回对应的title 和 id

//返回数据格式
array(
array('title' => '2018届 (一年级)', 'id'=>'2018'),
array('title' => '2017届 (二年级)', 'id'=>'2017'),
array('title' => '2016届 (三年级)', 'id'=>'2016'),
array('title' => '2015届 (四年级)', 'id'=>'2015'),
array('title' => '2014届 (五年级)', 'id'=>'2014'),
array('title' => '2013届 (六年级)', 'id'=>'2013'),
array('title' => '2012届 (已毕业)', 'id'=>'2012'),
array('title' => '2011届 (已毕业)', 'id'=>'2011')
);

说明:
2017届一年级 到2018-9月1号时 变成 2017届二年级
六年级 升级后 变成 已毕业
2011届以下的不考虑

例子
2018年9月1号

2018届 (一年级)
2017届 (二年级)
2016届 (三年级)
2015届 (四年级)
2014届 (五年级)
2013届 (六年级)
2012届 (已毕业)
2011届 (已毕业)

2017年9月1号

2017届 (一年级)
2016届 (二年级)
2015届 (三年级)
2014届 (四年级)
2013届 (五年级)
2012届 (六年级)
2011届 (已毕业)

2016年9月1号

2016届 (一年级)
2015届 (二年级)
2014届 (三年级)
2013届 (四年级)
2012届 (五年级)
2011届 (六年级)
...全文
171 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2017-06-15
  • 打赏
  • 举报
回复
print_r(foo('2018-09-01'));

function foo($date = '') {
  if(! $date) $date = time();
  else $date = strtotime($date);
  $d = array('已毕业', '一年级', '二年级', '三年级', '四年级', '五年级', '六年级');
  $y = date('Y', $date);
  if(date('md', $date) < '0901') $y--;

  for($i=$y; $i>=2011; $i--) {
    $k = $y-$i + 1;
    if($k < 0 || $k > 6) $k = 0;
    $r[] = array(
      'title' => sprintf('%d届 (%s)', $i, $d[$k]),
      'id' => $i,
    );
  }
  return $r;
}

Array
(
    [0] => Array
        (
            [title] => 2018届 (一年级)
            [id] => 2018
        )

    [1] => Array
        (
            [title] => 2017届 (二年级)
            [id] => 2017
        )

    [2] => Array
        (
            [title] => 2016届 (三年级)
            [id] => 2016
        )

    [3] => Array
        (
            [title] => 2015届 (四年级)
            [id] => 2015
        )

    [4] => Array
        (
            [title] => 2014届 (五年级)
            [id] => 2014
        )

    [5] => Array
        (
            [title] => 2013届 (六年级)
            [id] => 2013
        )

    [6] => Array
        (
            [title] => 2012届 (已毕业)
            [id] => 2012
        )

    [7] => Array
        (
            [title] => 2011届 (已毕业)
            [id] => 2011
        )

)
  • 打赏
  • 举报
回复
//获取当前时间 $time = time(); //获取当前时间的年份 $year = date('Y',$time); //获取当前年份09-01时间戳 $new_time = strtotime($year.'-09-01'); //判断当前时间是否是否小于 当前年份9月1号 if( $time < $new_time ){ for( $i=1;$i<=8;$i++ ){ $grade = $year - $i; if( $grade > 2011 ){ $arr['id'] = $grade; if( $i<=6){ $arr['title'] = $grade.'届 ( '.$i.'年级 )'; }else{ $arr['title'] = $grade.'届 ( 已毕业 )'; } $class[] = $arr; }else{ break; } } }else{ for( $i=0;$i<=8;$i++ ){ $grade = $year - $i; if( $grade > 2011 ){ $j = $i + 1; $arr['id'] = $grade; if( $i<=5){ $arr['title'] = $grade.'届 ( '.$j.'年级 )'; }else{ $arr['title'] = $grade.'届 ( 已毕业 )'; } $class[] = $arr; }else{ break; } } } 大概的思路是这样,,参考一下
伟洪winni 2017-06-15
  • 打赏
  • 举报
回复

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧