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

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

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

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

กระทู้: 16



ดูรายละเอียด
« เมื่อ: 23 กันยายน 2011, 18:41:53 »

$shipdate = 2011-09-30;
$creditday=30;
ผมใช้
$rfqenddate=date($shipdate, mktime(0,0,0,date('m')+0, date('d')+$creditday, date('Y')+0));
แล้วผลลัพธ์ออกมาเป็น 2011-09-30 อยู่ดี ไม่บวกวันให้

ปกติ ถ้าใช้
$rfqenddate=date('Y-m-d', mktime(0,0,0,date('m')+0, date('d')+$creditday, date('Y')+0));
ผลลัพธ์จะบวกให้ จากวันนี้ นับไป 30 วัน

ผมควรทำยังไงดีครับ ให้ใส่ตัว แปล $shipdate แล้วมัน + วันไปให้ผมอีก 30 วัน

รบกวนน่อยครับ
บันทึกการเข้า
xmen256k
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,999



ดูรายละเอียด
« ตอบ #1 เมื่อ: 23 กันยายน 2011, 18:44:17 »

แปลงเป็น timestamp ก่อน

จากนั้น + วันเข้าไป

แล้วก็แปลงกลับเป็นแบบธรรมดาอีกทีครับ
บันทึกการเข้า
mochiinkz
Newbie
*

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

กระทู้: 16



ดูรายละเอียด
« ตอบ #2 เมื่อ: 23 กันยายน 2011, 18:48:50 »

ยังไงหรอครับ พอดีผมเปนมือใหม่
บันทึกการเข้า
xmen256k
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,999



ดูรายละเอียด
« ตอบ #3 เมื่อ: 23 กันยายน 2011, 18:53:14 »

เอ่อ ลองศึกษาคำว่า timestamp ดูครับ

มันจะเป็นเวลาในลักษณะที่เป็นตัวเลขเยอะๆ 12346949874 อะไรประมาณนี้

สามารถเอาไปคำนวนเพิ่ม ลบ เวลาได้ ครับ
บันทึกการเข้า
mochiinkz
Newbie
*

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

กระทู้: 16



ดูรายละเอียด
« ตอบ #4 เมื่อ: 23 กันยายน 2011, 18:56:35 »

ขอบคุณครับ ขอลองก่อน
บันทึกการเข้า
mochiinkz
Newbie
*

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

กระทู้: 16



ดูรายละเอียด
« ตอบ #5 เมื่อ: 23 กันยายน 2011, 19:31:30 »

$date = explode("-", $shipdate);

$year = $date[0];
$month = $date[1];
$day = $date[2];

$paydate = mktime (0,0,0,$month+0, $day+$creditday, $year+0);

ได้ผลลัพธ์ออกมาเป็น 1319817600 ทำยังไงต่ออ่าครับ เข้าใจว่ามันคือ timestamp แล้วแต่ทำต่อไม่ถูกครับ
บันทึกการเข้า
thai2ads
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,172



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 23 กันยายน 2011, 19:43:42 »

$shipdate = 2011-09-30;
$creditday=30;
$mktime=mktime(date("H"),date("i"),date("s"),date("m"),date("d")+$creditday,date("Y"));
$today=date("Y-m-d",$mktim);
บันทึกการเข้า

รับทำเว็บไซต์ เขียนระบบต่างๆตามที่ต้องการ (ยกเว้น 18+ กับการพนัน) ระบบมีปัญหาการใช้งานแจ้งพจได้เลยนะครับอย่าได้เกรงใจเพราะเดี๋ยวมันจะไม่รู้ปัญหา
ออกแบบเว็บไซต์ | รับทำเว็บไซต์ |
mochiinkz
Newbie
*

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

กระทู้: 16



ดูรายละเอียด
« ตอบ #7 เมื่อ: 23 กันยายน 2011, 19:57:41 »

$shipdate = 2011-09-30;
$creditday=30;
$mktime=mktime(date("H"),date("i"),date("s"),date("m"),date("d")+$creditday,date("Y"));
$today=date("Y-m-d",$mktim);


ขอบคุณครับ แต่แบบนี้มันได้ผลลัพธ์เป็นวันนี้ครับ ผมจะเอา $shipdate + วัน $creditday ครับ ซึ่งในที่นี้ควรจะได้ 2011-10-30 ทำยังไงหว่า
บันทึกการเข้า
XXL
ก๊วนเสียว
*

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

กระทู้: 467



ดูรายละเอียด
« ตอบ #8 เมื่อ: 23 กันยายน 2011, 20:24:16 »

$shipdate = '2011-09-30';
$creditday = 30;
$mydate=date("Y-m-d",strtotime($shipdate)+$creditday*60*60*24);
บันทึกการเข้า

รถไฟวิ่ง ฉึกฉัก... . . . . ...ถึงก็ช่าง..ไม่ถึงก็ช่าง..
SpiderManKing
คนรักเสียว
*

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

กระทู้: 102



ดูรายละเอียด
« ตอบ #9 เมื่อ: 23 กันยายน 2011, 20:26:57 »

$now   = new DateTime('2011-09-30');
$addDay=10;
echo $now->format( 'd-m-Y' );
echo '<br>';
$now->modify("+{$addDay} days");
echo $now->format( 'd-m-Y' );
 
บันทึกการเข้า
mochiinkz
Newbie
*

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

กระทู้: 16



ดูรายละเอียด
« ตอบ #10 เมื่อ: 23 กันยายน 2011, 21:42:16 »

ขอบคุณ ทุกท่านที่ช่วยเหลือครับตอนนี้ได้แล้ว  Tongue Cry
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์