ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingphp บวก ลบ วันที่ได้มั้ยครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: php บวก ลบ วันที่ได้มั้ยครับ  (อ่าน 12070 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
qwerty
Newbie
*

พลังน้ำใจ: 8
ออฟไลน์ ออฟไลน์

กระทู้: 65



ดูรายละเอียด
« เมื่อ: 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);
บันทึกการเข้า
execter
ก๊วนเสียว
*

พลังน้ำใจ: 24
ออฟไลน์ ออฟไลน์

กระทู้: 212



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 19 เมษายน 2011, 08:59:58 »

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

Mubaza Thailand
pollok
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 44
ออฟไลน์ ออฟไลน์

กระทู้: 505



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 19 เมษายน 2011, 09:13:15 »

ตามข้างบนเลยครับ
บันทึกการเข้า

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

พลังน้ำใจ: 8
ออฟไลน์ ออฟไลน์

กระทู้: 65



ดูรายละเอียด
« ตอบ #3 เมื่อ: 19 เมษายน 2011, 09:32:30 »

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

พลังน้ำใจ: 24
ออฟไลน์ ออฟไลน์

กระทู้: 212



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 19 เมษายน 2011, 09:53:19 »

ลองดูตามนี้นะ

http://www.vision.to/how-to-ad...-weeks-months-to-any-date-.php
http://stackoverflow.com/quest...way-to-increment-a-date-in-php
บันทึกการเข้า

Mubaza Thailand
Tee++;
โปรแกรมเมอร์ จอหงวน
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 79
ออฟไลน์ ออฟไลน์

กระทู้: 1,861



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 19 เมษายน 2011, 12:25:05 »


(PHP 5 >= 5.3.0)
http://www.php.net/manual/en/datetime.diff.php
บันทึกการเข้า

kongpair
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 333
ออฟไลน์ ออฟไลน์

กระทู้: 2,721



ดูรายละเอียด
« ตอบ #6 เมื่อ: 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
« แก้ไขครั้งสุดท้าย: 19 เมษายน 2011, 12:31:29 โดย kongpair » บันทึกการเข้า
beeblack
คนรักเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 160



ดูรายละเอียด
« ตอบ #7 เมื่อ: 19 เมษายน 2011, 13:00:34 »

ทำได้ค่ะ ตั้งเวลาหมดอายุแสดงผล ใช่มั้ยคะ น้องบีเคยเขียนได้ค่ะ ตอนนี้จำ code แม่นๆ ไม่ได้ Smiley แต่มายืนยันว่า php ทำได้
บันทึกการเข้า

กด thanks ได้แล้วค่ะ ^^ จากน้ำใจของพี่ๆ 12 คำถาม ^^ thanks ค่ะ
nypee
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 30



ดูรายละเอียด
« ตอบ #8 เมื่อ: 19 เมษายน 2011, 13:04:59 »

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

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 857



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 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 ด้วยเด้อ...
บันทึกการเข้า

adaaugusta
ก๊วนเสียว
*

พลังน้ำใจ: 109
ออฟไลน์ ออฟไลน์

กระทู้: 466



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 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 เดือน
บันทึกการเข้า

beg
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 149
ออฟไลน์ ออฟไลน์

กระทู้: 1,445



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 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);
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์