
function get_weekinfo($month){
$weekinfo = array();
$end_date = date('d',strtotime($month' +1 month -1 day'));
for ($i=1; $i <$end_date ; $i=$i+7) {
$w = date('N',strtotime($month'-'$i));
$weekinfo[] = array(date('Y-m-d',strtotime($month'-'$i' -'($w-1)' days')),date('Y-m-d',strtotime($month'-'$i' +'(7-$w)' days')));
}
return $weekinfo;
}
print_r(get_weekinfo('2013-11'));
//执行结果
Array
(
[0] => Array
(
[0] => 2013-11-25
[1] => 2013-12-01
)
[1] => Array
(
[0] => 2013-12-02
[1] => 2013-12-08
)
[2] => Array
(
[0] => 2013-12-09
[1] => 2013-12-15
)
[3] => Array
(
[0] => 2013-12-16
[1] => 2013-12-22
)
[4] => Array
(
[0] => 2013-12-23
[1] => 2013-12-29
)
)
$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;
print_r(getdate(time()));
推荐函数 getdate();
"seconds"
秒的数字表示
0 到 59
"minutes"
分钟的数字表示
0 到 59
"hours"
小时的数字表示
0 到 23
"mday"
月份中第几天的数字表示
1 到 31
"wday"
星期中第几天的数字表示
0(表示星期天)到 6(表示星期六)
"mon"
月份的数字表示
1 到 12
"year"
4 位数字表示的完整年份
例如:1999 或 2003
"yday"
一年中第几天的数字表示
0 到 365
"weekday"
星期几的完整文本表示
Sunday 到 Saturday
"month"
月份的完整文本表示
January> 到 December
<php
//获取当前年份
$year = date('Y');
// $year = 2009;
//2009-01-01 星期4 $firstweekday=4
$firstWeekDay = date('w',strtotime($year'-01-01'));
if($firstWeekDay === 0)
$firstWeekDay = 7;
//第二周的周一 = 1号 + 8-1号所属的周几
//这个地方8天比较难理解,可以好好思考
$secondMonday = 9-$firstWeekDay;
$secondMondayDate = $year'-01-0'$secondMonday;
echo $secondMondayDate,'<br />';
//当前周 W 是从周一开始的
$currentWeek = date('W');
//这里的3周和之前的8天很类似 关于日期的计算果然很麻烦阿 哈哈
$pastDays = ($currentWeek - 3)7;
echo $currentWeek,' | ',$pastDays,'<br />';
//上周的星期一
$lastWeekMonday = date('Y-m-d',strtotime($secondMondayDate" + $pastDays days"));
echo $lastWeekMonday;
瞧代码的话思路转换很重要不要被既有的事物束缚了
那么你的数据表中需要有个字段是数据添加的时间,而且最好是时间戳格式,也就是10位的数值。然后查询的时候可以用时间间隔的where条件来查询,例如要查询2015年第22周,那么开始时间就是2015年1月1日的时间戳+21604800,因为一周是604800秒,所以用21乘以604800,这样得到开始时间,那结束时间就是开始时间再加604800秒,查询的时候语句就是select from 数据表 where 时间戳字段>开始时间 and 时间戳字段<结束时间; 这样就可以查到了。
PHP获取当前时间可以使用time函数,函数格式为 int time ( void ),返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
把time格式的时间以年月日时分秒的格式输出,可以使用date函数,格式是string date ( string $format [, int $timestamp ] ),例子代码:
<php$t=time();
echo "$t\n";
echo date('Y-m-d H:i:s', $t)
>
运行结果为:
E:\TEMP\文件\exp>aphp1451271607
2015-12-28 11:00:07
date函数的格式化字符许多,主要的有下面这些:
年:
L 是否为闰年 如果是闰年为 1,否则为 0
o ISO-8601 格式年份数字。这和 Y 的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。(PHP 510 新加) Examples: 1999 or 2003
Y 4 位数字完整表示的年份 例如:1999 或 2003
y 2 位数字表示的年份 例如:99 或 03
月:
F 月份,完整的文本格式,例如 January 或者 March January 到 December
m 数字表示的月份,有前导零 01 到 12
M 三个字母缩写表示的月份 Jan 到 Dec
n 数字表示的月份,没有前导零 1 到 12
t 给定月份所应有的天数 28 到 31
日:
d 月份中的第几天,有前导零的 2 位数字 01 到 31
D 星期中的第几天,文本表示,3 个字母 Mon 到 Sun
j 月份中的第几天,没有前导零 1 到 31
l(“L”的小写字母) 星期几,完整的文本格式 Sunday 到 Saturday
N ISO-8601 格式数字表示的星期中的第几天(PHP 510 新加) 1(表示星期一)到 7(表示星期天)
S 每月天数后面的英文后缀,2 个字符 st,nd,rd或者 th。可以和 j 一起用
w 星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六)
z 年份中的第几天 0 到 366
星期:
W ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 410 新加的) 例如:42(当年的第 42 周)
时间:
a 小写的上午和下午值 am 或 pm
A 大写的上午和下午值 AM 或 PM
B Swatch Internet 标准时 000 到 999
g 小时,12 小时格式,没有前导零 1 到 12
G 小时,24 小时格式,没有前导零 0 到 23
h 小时,12 小时格式,有前导零 01 到 12
H 小时,24 小时格式,有前导零 00 到 23
i 有前导零的分钟数 00 到 59>
s 秒数,有前导零 00 到 59>
以上就是关于php语言 计算每个月有几周及每周的起始时间 求程序实现的代码全部的内容,包括:php语言 计算每个月有几周及每周的起始时间 求程序实现的代码、怎么用PHP获得当前月的1号是从星期几开始的呢急急急!!!!!、php 判断本月完整周,如何判断该完整周的第几天等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)