作者ben0065 (oujiyo)
看板PHP
标题[请益] 请问我现在要抓每个月份的星期一?!
时间Mon Jan 5 16:41:20 2015
不好意思,请问各位大大们,假如我要抓取每个月的星期一我设定我要从2015-01-01号
开始抓星期一是几月几号,但现在碰到一个问题是,我用for回圈去跑,如果是在同个月
我抓一月的每个星期一,能够跑出数据来,但现在面临到,如果我跳月份,就会无法跑出
数据或者只跑几笔,目前发先应该是在於程式码天数上设定的问题,能有劳请各位大大,
帮帮小弟我吗?!
ex: 如果我要找出2015-01-01~2015-02-05 之间的每个星期一的话。
附上程式码:
$date_time="2015-01-01";
list($date)=explode(" ", $date_time); //取出日期部份
list($y,$M,$D)=explode("-",$date); //分离出年月日以便制作时戳
$M1 = $M;
$D1 = $D;
$date_time="2015-02-05";
list($date)=explode(" ", $date_time); //取出日期部份
list($Y,$M,$D)=explode("-",$date); //分离出年月日以便制作时戳
$M2 = $M;
$D2= $D;
echo $week;
for($m=$M1;$m<=$M2;$m++){
for($d=$D1;$d<=54;$d++){
if(date("w",mktime(0,0,0,$m,$d,$y))=="1") //代表星期几
echo $ymd ="$y-$m-$d"." ";
}
}
跪求各位大大帮解惑。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 120.107.58.243
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/PHP/M.1420447283.A.B27.html
2F:推 tkdmaf: 同楼上,我也玩了一下。 01/05 17:49
3F:推 Jerr: 找出第一个周一的unix timestamp, 一直加 86400*7 就好了 01/05 19:13
4F:→ olctw: 有想到,就想说强调一下 strtotime() 的用法 XD 01/05 21:18
感谢各位大大的解惑,非常感谢!!!
※ 编辑: ben0065 (120.107.58.243), 01/06/2015 08:52:47
5F:推 rickysu: 可以使用DateTime Object 的 modify在计算上比较方便 01/06 09:19
6F:推 rickysu: $d = new DateTime('2015-01-01'); 01/06 09:22
7F:→ rickysu: echo $d->modify('+1 week')->format('Y-m-d'); 01/06 09:22
8F:→ rickysu: 特别是遇到跨年或是跨月天数不固定时就很好用了。 01/06 09:23
9F:→ MOONRAKER: DateTime卡方便。 01/06 09:47