php语言 计算每个月有几周及每周的起始时间 求程序实现的代码

php语言 计算每个月有几周及每周的起始时间 求程序实现的代码,第1张

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>aphp

1451271607

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 判断本月完整周,如何判断该完整周的第几天等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9284610.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存