ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: qwerty ที่ 19 เมษายน 2011, 08:53:25



หัวข้อ: php บวก ลบ วันที่ได้มั้ยครับ
เริ่มหัวข้อโดย: qwerty ที่ 19 เมษายน 2011, 08:53:25
สมมุติรับ str มา "2010-05-20" ผมอยากจะทำ 3 อย่างคือ
บวกลบ
วัน
เดือน
ปี
มันสามารถทำได้มั้ยครับ รู้สึกว่าใช้ timestamp แล้วมันยากๆ แถวถ้าเป็นเดือนกับปี มันใช้ไม่ได้ด้วย เพราะว่าวันมันไม่เท่ากัน

 $date="2010-05-20";
        $_1day=86400;
        echo "default date : $date<br />";
       $ts1=  strtotime($date);
       $ts2=$ts1-($_1day*5);
        echo  "$ts1 <br />";
        echo date('Y-m-d',$ts1)."<br />";
        echo "new time : ".date('Y-m-d',$ts2);


หัวข้อ: Re: php บวก ลบ วันที่ได้มั้ยครับ
เริ่มหัวข้อโดย: execter ที่ 19 เมษายน 2011, 08:59:58
ลองแปลงเป็น Time Stamp ดีไหม แล้วค่อยเอามาลบแล้วแปลงกลับ น่าจะโอเคนะ


หัวข้อ: Re: php บวก ลบ วันที่ได้มั้ยครับ
เริ่มหัวข้อโดย: pollok ที่ 19 เมษายน 2011, 09:13:15
ตามข้างบนเลยครับ


หัวข้อ: Re: php บวก ลบ วันที่ได้มั้ยครับ
เริ่มหัวข้อโดย: qwerty ที่ 19 เมษายน 2011, 09:32:30
ก็ทำเป็น timestamp แหละครับ แต่ว่าถ้าลบไปเป็นปี เป็นเดือน วันมันจะไม่เท่ากันทุกอันอ่ะครับ


หัวข้อ: Re: php บวก ลบ วันที่ได้มั้ยครับ
เริ่มหัวข้อโดย: execter ที่ 19 เมษายน 2011, 09:53:19
ลองดูตามนี้นะ

http://www.vision.to/how-to-add-days-weeks-months-to-any-date-.php
http://stackoverflow.com/questions/660501/simplest-way-to-increment-a-date-in-php


หัวข้อ: Re: php บวก ลบ วันที่ได้มั้ยครับ
เริ่มหัวข้อโดย: Tee++; ที่ 19 เมษายน 2011, 12:25:05

(PHP 5 >= 5.3.0)
http://www.php.net/manual/en/datetime.diff.php


หัวข้อ: Re: php บวก ลบ วันที่ได้มั้ยครับ
เริ่มหัวข้อโดย: kongpair ที่ 19 เมษายน 2011, 12:29:14
<?php
$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));
$nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);
?>


http://th.php.net/manual/en/function.date.php


หัวข้อ: Re: php บวก ลบ วันที่ได้มั้ยครับ
เริ่มหัวข้อโดย: beeblack ที่ 19 เมษายน 2011, 13:00:34
ทำได้ค่ะ ตั้งเวลาหมดอายุแสดงผล ใช่มั้ยคะ น้องบีเคยเขียนได้ค่ะ ตอนนี้จำ code แม่นๆ ไม่ได้ :) แต่มายืนยันว่า php ทำได้


หัวข้อ: Re: php บวก ลบ วันที่ได้มั้ยครับ
เริ่มหัวข้อโดย: nypee ที่ 19 เมษายน 2011, 13:04:59
ไม่แนะนำให้ใช้ mktime แล้ว บวกวันที่เองนะคับ
เพราะถ้าบวกเกินก็จะทำให้ผลลัพธ์ผิด


หัวข้อ: Re: php บวก ลบ วันที่ได้มั้ยครับ
เริ่มหัวข้อโดย: jim_no1 ที่ 22 เมษายน 2011, 14:57:04
จะบอกว่า php เท่าที่ทำมานั้น ปวดหัวมาก

หากเป็น java จะง่ายกว่าเยอะเลยครับ

เขียนอย่างนี้ครับ ง่ายกว่าเยอะเลย

โค๊ด:
<script language="javascript">
now = new Date();
var thday = new Array ("อาทิตย์ ที่ ","จันทร ที่ ",
"อังคาร ที่ ","พุธ ที่ ","พฤหัส ที่ ","ศุกร์ ที่ ","เสาร์ ที่ ");
var thmonth = new Array ("มกราคม","กุมภาพันธ์","มีนาีคม",
"เมษายน","พฤศภาคม","มิถุนายน", "กรกฎาคม","สิงหาคม","กันยายน",
"ตุลาคม","พฤศจิกายน","ธันวาคม");
document.write("<b>วัน</b> "  thday[now.getDay ()]  now.getDate()  " "   thmonth[now.getMonth()]  " "   (0 now.getYear() 543));
</script>

เพราะว่าเรื่องนี้พยายามมานานแล้ว แถมยังไม่เคยมีใครบอกผมด้วย ผมเคยตั่งกระทู้แบบนี้มาก่อนแล้ว แต่กว่าจะสำเร็จได้ ปวดหัวแทบตาย เลยเอามาบอกครับ

ถูกใจ ขอ Thank ด้วยเด้อ...


หัวข้อ: Re: php บวก ลบ วันที่ได้มั้ยครับ
เริ่มหัวข้อโดย: adaaugusta ที่ 22 เมษายน 2011, 15:21:02
ทำได้หลายแบบเลยครับ

โค๊ด:
echo date('Y-m-d', strtotime('+1 day'));  <= เอาวันเดือนปีปัจจุบัน + เพิ่มไปอีก 1 วัน
echo date('Y-m-d', strtotime('+1 month'));  <= เอาวันเดือนปีปัจจุบัน + เพิ่มไปอีก 1 เดือน
echo date('Y-m-d', strtotime('next month')); <= เลื่อนไปเดือนถัดไป

ถ้าในกรณีที่เอาค่าจากฐานข้อมูลมาบวก หรือ ลบ ก็สามารถใช้โค้ดเดิมด้านบนได้แต่เพิมไปนิดหน่อย


โค๊ด:
echo date('Y-m-d', strtotime('+ 1day', "ค่าจากฐานข้อมู"));   <= เอาวันเดือนปีจากฐานข้อมูล + เพิ่มไปอีก 1 วัน
echo date('Y-m-d', strtotime('+ 1month', "ค่าจากฐานข้อมู"));   <= เอาวันเดือนปีจากฐานข้อมูล + เพิ่มไปอีก 1 เดือน


หัวข้อ: Re: php บวก ลบ วันที่ได้มั้ยครับ
เริ่มหัวข้อโดย: beg ที่ 22 เมษายน 2011, 15:24:28
ฟังค์ชั่้นหาระยะห่างของวัน

โค๊ด:

function dateDiff($dformat, $endDate, $beginDate)
{
    $date_parts1=explode($dformat, $beginDate);
    $date_parts2=explode($dformat, $endDate);
    $start_date=gregoriantojd($date_parts1[0], $date_parts1[1], $date_parts1[2]);
    $end_date=gregoriantojd($date_parts2[0], $date_parts2[1], $date_parts2[2]);
    return $end_date - $start_date;
}


$date1="10/01/2010"; // วันเริ่มต้น
$date2 = @date("m/d/Y");  // วันปัจจุบัน
 

echo dateDiff("/", $date2, $date1);