php บวก ลบ วันที่ได้มั้ยครับ

เริ่มโดย qwerty, 19 เมษายน 2011, 08:53:25

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

qwerty

สมมุติรับ 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);

execter

ลองแปลงเป็น Time Stamp ดีไหม แล้วค่อยเอามาลบแล้วแปลงกลับ น่าจะโอเคนะ
Mubaza Thailand

pollok

รับทำเว็บไซต์ด้วย PHP HTML CSS JQUERY (ด้วยมืออาชีพ)
รับออกแบบเว็บไซต์ ด้วยทีมงานมืออาชีพ (PM ขอชมผลงาน)
ตัดแบบจาก PSD ด้วย Html + Css + Table Less และสามารถทำให้แสดงผลแบบ Cross Browser
- Bootstrap
- OpenCart
- และอื่นๆ

qwerty

ก็ทำเป็น timestamp แหละครับ แต่ว่าถ้าลบไปเป็นปี เป็นเดือน วันมันจะไม่เท่ากันทุกอันอ่ะครับ


Tee++;

[direct=http://laravel.in.th]Laravel in Thai[/direct]
[direct=http://jquerytips.com]jQueryTips by Tee++;[/direct]
[direct=https://www.facebook.com/jQueryTips]jQueryTips Page[/direct]
[direct=https://www.facebook.com/Laravel.in.th]Laravel in Thai Page[/direct]
[direct=https://twitter.com/Teepluss]Teepluss's Twitter[/direct]


kongpair

#6
<?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

beeblack

ทำได้ค่ะ ตั้งเวลาหมดอายุแสดงผล ใช่มั้ยคะ น้องบีเคยเขียนได้ค่ะ ตอนนี้จำ code แม่นๆ ไม่ได้ :) แต่มายืนยันว่า php ทำได้
กด thanks ได้แล้วค่ะ ^^ จากน้ำใจของพี่ๆ 12 คำถาม ^^ thanks ค่ะ

nypee

ไม่แนะนำให้ใช้ mktime แล้ว บวกวันที่เองนะคับ
เพราะถ้าบวกเกินก็จะทำให้ผลลัพธ์ผิด

jim_no1

จะบอกว่า 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 ด้วยเด้อ...
[direct=http://www.jimbeautify.com]jimbeautify.com ป้ายทะเบียนยาว[/direct]
[direct=http://jimbeautify.com/design/Plate_car/home_car.php]jimbeautify ออกแบบรถอย่างง่าย ๆ ด้วยตนเอง[/direct]
[direct=http://www.jimbeautify.com/forum/index.php] ประกาศขายสินค้าต่าง ๆ[/direct]
[direct=http://www.jimbeautify.com/forum/index.php?topic=15.0]คลิีกดูรายละเอียดเข้าร่วมฝึกอบรมทำป้ายทะเบียนกันน้ำแบบมืออาชีพ
[/direct]

adaaugusta

ทำได้หลายแบบเลยครับ


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 เดือน

beg

ฟังค์ชั่้นหาระยะห่างของวัน



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);