如题,如起始日期是:2007-10-01 00:00:00
截止日期到系统当天日期为止请教各位 怎么统计出期间有几个季度并自动从生成从起始日期到现在的季度下拉列表呢?
想实现的就如:
以下下拉列表方式:
<select name="select" id="select">
<option selected="selected">请选择</option>
<option value="2009-01-01 00:00:00">2009年第1季度</option>
<option value="2009-04-01 00:00:00">2009年第2季度</option>
<option value="2009-07-01 00:00:00">2009年第3季度</option>
<option value="2009-10-01 00:00:00">2009年第4季度</option>
<option value="2010-01-01 00:00:00">2010年第1季度</option>
<option value="2010-04-01 00:00:00">2010年第2季度</option>
</select>
以下是获取今天的是第几季度
function MyDate($format='Y-m-d H:i:s',$timest=0)
{
$cfg_cli_time = 8;
global $cfg_cli_time;
$addtime = $cfg_cli_time * 3600;
if(empty($format))
{
$format = 'Y-m-d H:i:s';
}
return gmdate ($format,$timest+$addtime);
}
function GetMkTime($dtime)
{
$cfg_cli_time = 8;
global $cfg_cli_time;
if(!ereg("[^0-9]",$dtime))
{
return $dtime;
}
$dtime = trim($dtime);
$dt = Array(1970,1,1,0,0,0);
$dtime = ereg_replace("[\r\n\t]|日|秒"," ",$dtime);
$dtime = str_replace("年","-",$dtime);
$dtime = str_replace("月","-",$dtime);
$dtime = str_replace("时",":",$dtime);
$dtime = str_replace("分",":",$dtime);
$dtime = trim(ereg_replace("[ ]{1,}"," ",$dtime));
$ds = explode(" ",$dtime);
$ymd = explode("-",$ds[0]);
if(!isset($ymd[1]))
{
$ymd = explode(".",$ds[0]);
}
if(isset($ymd[0]))
{
$dt[0] = $ymd[0];
}
if(isset($ymd[1]))
{
$dt[1] = $ymd[1];
}
if(isset($ymd[2]))
{
$dt[2] = $ymd[2];
}
if(strlen($dt[0])==2)
{
$dt[0] = '20'.$dt[0];
}
if(isset($ds[1]))
{
$hms = explode(":",$ds[1]);
if(isset($hms[0]))
{
$dt[3] = $hms[0];
}
if(isset($hms[1]))
{
$dt[4] = $hms[1];
}
if(isset($hms[2]))
{
$dt[5] = $hms[2];
}
}
foreach($dt as $k=>$v)
{
$v = ereg_replace("^0{1,}",'',trim($v));
if($v=='')
{
$dt[$k] = 0;
}
}
$mt = @gmmktime($dt[3],$dt[4],$dt[5],$dt[1],$dt[2],$dt[0]) - 3600 * $cfg_cli_time;
if(!empty($mt))
{
return $mt;
}
else
{
return time();
}
}
$y = intval(MyDate('Y', time()));
$m = intval(MyDate('m', time()));
$d = intval(MyDate('d', time()));
//季度
$endtime = 0;
if( ereg("[123]", $m) && $m < 10) $endtime = $y."-01-01 00:00:00";
else if( ereg("[456]", $m) ) $endtime = $y."-04-01 00:00:00";
else if( ereg("[789]", $m) ) $endtime = $y."-07-01 00:00:00";
else $endtime = $y."-10-01 00:00:00";
$endtime = GetMkTime($endtime);
echo $endtime;
截止日期到系统当天日期为止请教各位 怎么统计出期间有几个季度并自动从生成从起始日期到现在的季度下拉列表呢?
想实现的就如:
以下下拉列表方式:
<select name="select" id="select">
<option selected="selected">请选择</option>
<option value="2009-01-01 00:00:00">2009年第1季度</option>
<option value="2009-04-01 00:00:00">2009年第2季度</option>
<option value="2009-07-01 00:00:00">2009年第3季度</option>
<option value="2009-10-01 00:00:00">2009年第4季度</option>
<option value="2010-01-01 00:00:00">2010年第1季度</option>
<option value="2010-04-01 00:00:00">2010年第2季度</option>
</select>
以下是获取今天的是第几季度
function MyDate($format='Y-m-d H:i:s',$timest=0)
{
$cfg_cli_time = 8;
global $cfg_cli_time;
$addtime = $cfg_cli_time * 3600;
if(empty($format))
{
$format = 'Y-m-d H:i:s';
}
return gmdate ($format,$timest+$addtime);
}
function GetMkTime($dtime)
{
$cfg_cli_time = 8;
global $cfg_cli_time;
if(!ereg("[^0-9]",$dtime))
{
return $dtime;
}
$dtime = trim($dtime);
$dt = Array(1970,1,1,0,0,0);
$dtime = ereg_replace("[\r\n\t]|日|秒"," ",$dtime);
$dtime = str_replace("年","-",$dtime);
$dtime = str_replace("月","-",$dtime);
$dtime = str_replace("时",":",$dtime);
$dtime = str_replace("分",":",$dtime);
$dtime = trim(ereg_replace("[ ]{1,}"," ",$dtime));
$ds = explode(" ",$dtime);
$ymd = explode("-",$ds[0]);
if(!isset($ymd[1]))
{
$ymd = explode(".",$ds[0]);
}
if(isset($ymd[0]))
{
$dt[0] = $ymd[0];
}
if(isset($ymd[1]))
{
$dt[1] = $ymd[1];
}
if(isset($ymd[2]))
{
$dt[2] = $ymd[2];
}
if(strlen($dt[0])==2)
{
$dt[0] = '20'.$dt[0];
}
if(isset($ds[1]))
{
$hms = explode(":",$ds[1]);
if(isset($hms[0]))
{
$dt[3] = $hms[0];
}
if(isset($hms[1]))
{
$dt[4] = $hms[1];
}
if(isset($hms[2]))
{
$dt[5] = $hms[2];
}
}
foreach($dt as $k=>$v)
{
$v = ereg_replace("^0{1,}",'',trim($v));
if($v=='')
{
$dt[$k] = 0;
}
}
$mt = @gmmktime($dt[3],$dt[4],$dt[5],$dt[1],$dt[2],$dt[0]) - 3600 * $cfg_cli_time;
if(!empty($mt))
{
return $mt;
}
else
{
return time();
}
}
$y = intval(MyDate('Y', time()));
$m = intval(MyDate('m', time()));
$d = intval(MyDate('d', time()));
//季度
$endtime = 0;
if( ereg("[123]", $m) && $m < 10) $endtime = $y."-01-01 00:00:00";
else if( ereg("[456]", $m) ) $endtime = $y."-04-01 00:00:00";
else if( ereg("[789]", $m) ) $endtime = $y."-07-01 00:00:00";
else $endtime = $y."-10-01 00:00:00";
$endtime = GetMkTime($endtime);
echo $endtime;
解决方案 »
- 我安装好了wampServer,用zend建了一个工程,该怎么运行?
- 问一个有关算法的问题
- 急!关于正则表达式解析img src内容的问题,请高手指点??
- php把记录插入SQL Server 2000的问题,在线等
- 一个面向对象方面的很基础的小白问题,求指点
- 《php程序设计》这本书中的这个例子是错的,大家帮我看看如何更正这个错误
- 刚入php的门,下面不知如何学?往那方面学了?加强那方面的?高人大哥门给指点一下。
- [超简单的问题]如何接收另一页传过来的变量?
- 请问PHP在WINDOWS SQL SERVER上性能怎么样?编程方便吗?
- 我也是醉了,在linux上面跑Thinkphp 怎么也跑不通
- 简单的删除操作,错误却莫名其妙,请帮忙看看
- 字符串拆分的问题
function countSeason($start,$end){
$temp = date("Y-m-d H:i:s",strtotime("$start +3month"));
while ($temp <= $end){
$time[] = $temp;
$temp = date("Y-m-d H:i:s",strtotime("$temp +3month"));
}
return $time;
}
$time = countSeason("2007-10-01 00:00:00",date("Y-m-d H:i:s"));
var_dump($time);
echo "---------------------------------------------------------------------------------<br>";
?><html>
<select name="select" id="select">
<?php foreach ($time as $val){?>
<option value="<?php echo $val;?>"><?php echo substr($val,0,4);?>年第
<?php
$temp = intval(substr($val,5,2));
if (0<$temp&&$temp<4)
{echo "1";}
elseif (3<$temp&&$temp<7)
{echo "2";}
elseif (6<$temp&&$temp<10)
{echo "3";}
else
{echo "4";}
?>季度
</option>
<?php }?>
</select>
</html>