<php
//这个月的 周日-周六的日期
$year = date("Y");
$month = date("m");
$days = date("t");
for ($i=0; $i < $days; $i++) {
$day = $year'-'$month'-'$i;
$w = date('w',strtotime($day));
if ($w == 6 || $w ==0) {
echo $day' 是周末<br />';
}
}
><php
//这个周的 周日-周六的日期
$year = date("Y");
$month = date("m");
$days = date("t");
$hao = date('j');
for ($i=$hao; $i < ($hao+7); $i++) {
$day = $year'-'$month'-'$i;
$w = date('w',strtotime($day));
if ($w == 6 || $w ==0) {
echo $day' 是周末<br />';
}
}
>
望采纳 Thx
这要利用数据库的日期函数,对于MYSQL,查询周一的信息可以使用下面的SQL:
SELECT ID,TITLE,ADDTIME FROM xxx
WHERE WEEKDAY(ADDTIME)=1
感觉你这个不用foreach也可以解决,给你个示例如下:
<php
//定义课程数组,键名为周一至周五,二维的数组为当天的课程
$classArr = array(
'1'=> array('语文','数学'),
'2'=> array(‘数学','语文'),
'3'=>array('XXX','XXX'),
'4'=>array('XXX','XXX'),
'5'=>array('XXX','XXX')
);
//定义获取某天课程的方法
function getWeekClass($day,$classArr){
$todayClass = $classArr[$day];
echo implode(',',$todyClass);
}
//获取星期一课程
getWeekClass('1',$classArr);
>
php获取昨天、今天、明天、上周、本月、一年后、十年后的开始时间戳和结束时间戳:
//php获取昨天日期date("Y-m-d",strtotime("-1 day"))
//php获取明天日期
date("Y-m-d",strtotime("+1 day"))
//php获取一周后日期
date("Y-m-d",strtotime("+1 week"))
//php获取一周零两天四小时两秒后时间
date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds"))
//php获取下个星期四日期
date("Y-m-d",strtotime("next Thursday"))
//php获取上个周一日期
date("Y-m-d",strtotime("last Monday"))
//php获取一个月前日期
date("Y-m-d",strtotime("last month"))
//php获取一个月后日期
date("Y-m-d",strtotime("+1 month"))
//php获取十年后日期
date("Y-m-d",strtotime("+10 year"))
//php获取今天起止时间戳
mktime(0,0,0,date('m'),date('d'),date('Y'));
mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
//php获取昨天起止时间戳
mktime(0,0,0,date('m'),date('d')-1,date('Y'));
mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
//php获取上周起止时间戳
mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));
//php获取本月起止时间戳
mktime(0,0,0,date('m'),1,date('Y'));
mktime(23,59,59,date('m'),date('t'),date('Y'));
签到功能主要是需要获取上次签到时间,然后进行比对,如果比较之后在零点之后,且大于24小时,就认为连续签到失败。
关键点:每次需要记录签到时间,这样以后无论是根据记录,还是相应算法都可以统计相关的签到记录。
签到功能核心就是时间的比较,只要比对好时间,然后封装签到方法,就可以轻松记录签到情况。
PHP计算一年多少个星期和每周的开始和结束日期方法如下:
方法一:
<php
header("Content-type:text/html;charset=utf-8");
date_default_timezone_set("Asia/Shanghai");
$year = (int)$_GET['year'];
$week = (int)$_GET['week'];
$weeks = date("W", mktime(0, 0, 0, 12, 28, $year));
echo $year '年一共有' $weeks '周<br />';
if ($week > $weeks || $week <= 0)
{
$week = 1;
}
if ($week < 10)
{
$week = '0' $week;
}
$timestamp['start'] = strtotime($year 'W' $week);
$timestamp['end'] = strtotime('+1 week -1 day', $timestamp['start']);
echo $year '年第' $week '周开始时间戳:' $timestamp['start'] '<br />';
echo $year '年第' $week '周结束时间戳:' $timestamp['end'] '<br />';
echo $year '年第' $week '周开始日期:' date("Y-m-d", $timestamp['start']) '<br />';
echo $year '年第' $week '周结束日期:' date("Y-m-d", $timestamp['end']);
>
方法二: <php
header("Content-type:text/html;charset=utf-8");
function getIsoWeeksInYear($year)
{
$date = new DateTime;
$date->setISODate($year, 53);
return ($date->format("W") === "53" 53 : 52);
}
function weekday($custom_date)
{
$week_start = date('d-m-Y', strtotime('this week monday', $custom_date));
$week_end = date('d-m-Y', strtotime('this week sunday', $custom_date));
$week_array[0] = $week_start;
$week_array[1] = $week_end;
return $week_array;
}
echo '<br> Weeks in 2013<br>' getIsoWeeksInYear(2013);
$weekday = weekday(strtotime(date('d-m-Y', strtotime('5-8-2013'))));
echo '<br> 10-8-2013';
echo '<br>Start: ' $weekday[0];
echo '<br>End: ' $weekday[1];
>
或者方法三:
function get_week($year) {
$year_start = $year "-01-01";
$year_end = $year "-12-31";
$startday = strtotime($year_start);
if (intval(date('N', $startday)) != '1') {
$startday = strtotime("next monday", strtotime($year_start)); //获取年第一周的日期
}
$year_mondy = date("Y-m-d", $startday); //获取年第一周的日期
$endday = strtotime($year_end);
if (intval(date('W', $endday)) == '7') {
$endday = strtotime("last sunday", strtotime($year_end));
}
$num = intval(date('W', $endday));
for ($i = 1; $i <= $num; $i++) {
$j = $i -1;
$start_date = date("Y-m-d", strtotime("$year_mondy $j week "));
$end_day = date("Y-m-d", strtotime("$start_date +6 day"));
$week_array[$i] = array (
str_replace("-",
"",
$start_date
), str_replace("-", "", $end_day));
}
return $week_array;
}
函数get_week()通过传入参数$year年份,获取当年第一天和最后一天所在的周数,计算第一周的日期,通过循环获取每一周的第一天和最后一天的日期。最后返回是一个数组。
想得到指定周数的开始日期和结束日期,比如2011年第18周的开始日期和结束日期,代码如下:
复制代码 代码如下:
$weeks = get_week(2011);
echo '第18周开始日期:'$weeks[18][0]'';
echo '第18周结束日期:'$weeks[18][1];
最后输出结果:
第18周开始日期:20110502
第18周结束日期:20110508
我也是来找答案的,结果发现两位仁兄都差了点。
那就让我补上这最后这点吧
function getFirstDayOfWeek($year,$week)
{
$first_day = strtotime($year"-01-01");
$is_monday = date("w", $first_day) == 1;
$week_one_start = !$is_monday strtotime("last monday", $first_day) : $first_day;
return $year'第'$week'周开始天:'date('Y-m-d',$week_one_start+(3600247($week-1)))
';结束天为:'date('Y-m-d',$week_one_start+((360024)(7($week-1)+6)));
}
$xingqi = Date("w", strtotime(Date("Y-n-1"))) ;
switch($xingqi)
{
case 0: $xingqi = "星期日";
break;
case 1: $xingqi = "星期一";
break;
case 2: $xingqi = "星期二";
break;
case 3: $xingqi = "星期三";
break;
case 4: $xingqi = "星期四";
break;
case 5: $xingqi = "星期五";
break;
case 6: $xingqi = "星期六";
break;
default: echo "获取不到星期,有错误!";
}
echo "本月的第一天是: "$xingqi;
以上就是关于php怎么获取本周:周日-周六的日期;全部的内容,包括:php怎么获取本周:周日-周六的日期;、php 查询周几的信息、php 用数组写一个课程表 用foreach 来历遍数组,要能够控制输出,当用户输入1时,显示星期一的课程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)