[請益] 請問我現在要抓每個月份的星期一?!

作者: ben0065 (oujiyo)   2015-01-05 16:41:20
不好意思,請問各位大大們,假如我要抓取每個月的星期一我設定我要從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"."&nbsp;&nbsp;";
}
}
跪求各位大大幫解惑。
作者: olctw (k.olc.tw)   2015-01-05 17:00:00
作者: tkdmaf (皮皮快跑)   2015-01-05 17:49:00
同樓上,我也玩了一下。
作者: Jerr (身為老爸老媽嚕..)   2015-01-05 19:13:00
找出第一個週一的unix timestamp, 一直加 86400*7 就好了
作者: olctw (k.olc.tw)   2015-01-05 21:18:00
有想到,就想說強調一下 strtotime() 的用法 XD
作者: rickysu (Ricky)   2015-01-06 09:19:00
可以使用DateTime Object 的 modify在計算上比較方便$d = new DateTime('2015-01-01');echo $d->modify('+1 week')->format('Y-m-d');特別是遇到跨年或是跨月天數不固定時就很好用了。
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-01-06 09:47:00
DateTime卡方便。

Links booklink

Contact Us: admin [ a t ] ucptt.com