|
|
|
ลบวันที่รอบละ 1 เดือนด้วย strtotime แล้วเพี้ยนไปเลย |
|
|
|
|
|
|
|
Code (PHP)
<?php
for ($imonth = 1; $imonth<=12; $imonth++) {
$content .= date("Y-m-d", strtotime("-".$imonth." month"))."<br />\n";
}
echo $content;
?>
ลองโค้ดนี้ น่าจะพอเข้าใจนะครับ เซตวันที่เป็น 29 สิงหา ดูครับ
|
|
|
|
|
Date :
2009-09-01 08:03:08 |
By :
lozomac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่เวิร์คเลยครับ
ต้องลองตอนวันที่ 31 สิงหา สิครับ
เพราะสมมุติว่ามีการใช้งานในวันที่แบบนี้อีก มันก็จะเกิดขึ้นอีก
ตอนนี้ที่ผมเข้าใจได้คือ ถ้าวันที่ 31 สิงหา -1เดือนก็ 31กรกฎา อันนี้ถูก
แต่พอลบอีกรอบควรจะเป็น 30 มิถุนา แต่มันไม่เป็นอย่างนั้น มันเอา 30กรกฎามาซ้ำอีก แล้วไปนู่นเลย 31พฤษภาเลย
- -"
|
|
|
|
|
Date :
2009-09-01 14:35:47 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โค้ดที่ผมให้ดูไม่ใช่ว่ามันใช้ได้ครับ เพราะมันใช้ไม่ได้เลยให้ดู แต่มันมีจุดที่สังเกตได้ คือ มันเอาวันที่ปัจจุบันไปคิดครับ เจ้า strtotime("-".$imonth." month")) เนี๊ย ดังนั้น ไม่ว่ามันจะลบออกไปเป็นเดือนที่เท่าไหร่ มันก็จะเอาวันที่ปัจจุบันไปด้วย
สังเกตุ ชัดๆ คือเดือนที่สอง ปีนี้มี 28 วัน ไม่มีวันที่ 29, 30 หรือ 31 มันจึงไม่แสดง เดือน สอง
วิธีนี้ผมว่าไม่เวิร์คครับ น่าจะใช้ mktime() มากกว่า
|
|
|
|
|
Date :
2009-09-01 17:07:32 |
By :
lozomac |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|