如何 用php获取本季度的第一天 本月的第一天,本周的第一天,谢谢,最好给出详细代码 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //季度第一天:参数:$day格式为yyyy-mm-ddfunction quarterFirstDay($day){$_day = getdate(strtotime($day));$_thism = ceil($_day[mon]/3);return $_day[year].'-'.$_thism.'-1';}//本月第一天:参数:$day格式为yyyy-mm-ddfunction monFirstDay($day){$_day = getdate(strtotime($day));return $_day[year].'-'.$_day[mon].'-1';}//本周第一天:参数:$day格式为yyyy-mm-ddfunction weekFirstDay($day){$__day = strtotime($day);$_day = getdate($__day);$_thisw = (7-$_day[wday])*3600*24;return date("Y-m-d",$__day - $_thisw);} <?phpecho '本季度第一天:'.date('Y-m-d', mktime(0,0,0,date('n')-(date('n')-1)%3,1,date('Y'))).'<br/>';echo '本月第一天:'.date('Y-m-d', mktime(0,0,0,date('n'),1,date('Y'))).'<br/>';echo '本周第一天(星期日为一周开始):'.date('Y-m-d', time()-86400*date('w')).'<br/>';echo '本周第一天(星期一为一周开始):'.date('Y-m-d', time()-86400*date('w')+(date('w')>0?86400:-6*86400)).'<br/>';?> 季度第一天,还是月份第一天,都是某个年月日期(比如2009-03),拼接上"-01"即可.至于周的第一天,可以利用某个日期是星期几来算出.比如'2009-05-20'是星期2,那这个日期再减一天就是星期一,也就是所谓周的开始天.'2009-05-21'是星期3,那就减2天,以此类推.//date_default_timezone_get('Asia/shanghai');function weekFirstDay($day){ $dt = strtotime($day); $wd = date('w',$dt)-1;//周一为开始天 //$wd = date('N',$dt);//周日为开始天 return date('Y-m-d',strtotime($day." - {$wd} days"));}echo weekFirstDay('2009-05-20'); 以上有bug..$wd = date('N',$dt)-1;//用这个,周一开始天 <?php$time = time();function gettime( $time, $str ){ if( $str == 1 ) { $w = date( 'w', $time ); if( $w < 1 ) { $time = $time + 24*3600; } elseif( $w > 1 ) { $time = $time - ( $w - 1 )*24*3600; } return $w.date( 'Y-m-d', $time ); } elseif( $str == 2 ) { $j = date( 'j', $time ); $time = $time - ( $j - 1 )*24*3600; return date( 'Y-m-d', $time ); } elseif( $str == 3 ) { $m = date( 'm', $time ); if( 0 < $m && $m < 4 ) { return date('Y', $time)."-01-01"; } elseif( 3 < $m && $m < 7 ) { return date('Y', $time)."-04-01"; } elseif( 6 < $m && $m < 10 ) { return date('Y', $time)."-07-01"; } elseif( 9 < $m && $m < 12 ) { return date('Y', $time)."-09-01"; } }}echo gettime( $time, 1 ); // 星期 一 echo "<br>";echo gettime( $time, 2 ); // 月 一echo "<br>";echo gettime( $time, 3 ); // 季 一?> 这个函数有个地方修改一下。不用7-直接乘就可以了//本周第一天:参数:$day格式为yyyy-mm-ddfunction weekFirstDay($day){$__day = strtotime($day);$_day = getdate($__day);$_thisw = $_day[wday]*3600*24;return date("Y-m-d",$__day - $_thisw);} 验证码显示错误~~ curl模拟登陆的问题 常见的php分页写法并不通用呀 编辑器如何获取到上个页面传递过来的值??? STMP问题 js 中怎么把当前窗口 的内容 放到父窗口中 请问smarty循环二维数组问题 郁闷郁闷 用php怎样接收网页错误类型号? 谁能讲一下$HTTP_SERVER_VARS数组的各个变量 smarty 与fckeditor 相互结合更新问题,大家帮助我看下 请帮忙看一下,有几个小问题。
//季度第一天:参数:$day格式为yyyy-mm-dd
function quarterFirstDay($day)
{
$_day = getdate(strtotime($day));
$_thism = ceil($_day[mon]/3);
return $_day[year].'-'.$_thism.'-1';
}//本月第一天:参数:$day格式为yyyy-mm-dd
function monFirstDay($day)
{
$_day = getdate(strtotime($day));
return $_day[year].'-'.$_day[mon].'-1';
}//本周第一天:参数:$day格式为yyyy-mm-dd
function weekFirstDay($day)
{
$__day = strtotime($day);
$_day = getdate($__day);
$_thisw = (7-$_day[wday])*3600*24;
return date("Y-m-d",$__day - $_thisw);
}
echo '本季度第一天:'.date('Y-m-d', mktime(0,0,0,date('n')-(date('n')-1)%3,1,date('Y'))).'<br/>';
echo '本月第一天:'.date('Y-m-d', mktime(0,0,0,date('n'),1,date('Y'))).'<br/>';
echo '本周第一天(星期日为一周开始):'.date('Y-m-d', time()-86400*date('w')).'<br/>';
echo '本周第一天(星期一为一周开始):'.date('Y-m-d', time()-86400*date('w')+(date('w')>0?86400:-6*86400)).'<br/>';
?>
至于周的第一天,可以利用某个日期是星期几来算出.
比如'2009-05-20'是星期2,那这个日期再减一天就是星期一,也就是所谓周的开始天.'2009-05-21'是星期3,那就减2天,以此类推.
//
date_default_timezone_get('Asia/shanghai');
function weekFirstDay($day)
{
$dt = strtotime($day);
$wd = date('w',$dt)-1;//周一为开始天
//$wd = date('N',$dt);//周日为开始天
return date('Y-m-d',strtotime($day." - {$wd} days"));
}echo weekFirstDay('2009-05-20');
$wd = date('N',$dt)-1;//用这个,周一开始天
$time = time();function gettime( $time, $str )
{
if( $str == 1 )
{
$w = date( 'w', $time );
if( $w < 1 )
{
$time = $time + 24*3600;
}
elseif( $w > 1 )
{
$time = $time - ( $w - 1 )*24*3600;
}
return $w.date( 'Y-m-d', $time );
}
elseif( $str == 2 )
{
$j = date( 'j', $time );
$time = $time - ( $j - 1 )*24*3600;
return date( 'Y-m-d', $time );
}
elseif( $str == 3 )
{
$m = date( 'm', $time );
if( 0 < $m && $m < 4 )
{
return date('Y', $time)."-01-01";
}
elseif( 3 < $m && $m < 7 )
{
return date('Y', $time)."-04-01";
}
elseif( 6 < $m && $m < 10 )
{
return date('Y', $time)."-07-01";
}
elseif( 9 < $m && $m < 12 )
{
return date('Y', $time)."-09-01";
}
}
}echo gettime( $time, 1 ); // 星期 一 echo "<br>";echo gettime( $time, 2 ); // 月 一echo "<br>";echo gettime( $time, 3 ); // 季 一
?>
function weekFirstDay($day)
{
$__day = strtotime($day);
$_day = getdate($__day);
$_thisw = $_day[wday]*3600*24;
return date("Y-m-d",$__day - $_thisw);
}