227 of 410 menu

คลาส DateInterval

คลาส DateInterval ช่วยให้ทำงานกับช่วงเวลาใน PHP ได้ มันถูกใช้เพื่อเก็บความแตกต่างระหว่างสองวันที่หรือเพื่อกำหนดช่วงเวลา ในเมธอดที่ทำงานกับวันที่ ช่วงเวลาถูกสร้างขึ้นในรูปแบบพิเศษ

ไวยากรณ์

DateInterval::__construct(string $duration)

รูปแบบช่วงเวลา

รูปแบบประกอบด้วยตัวอักษร P (period) และองค์ประกอบ:

P{y}Y{m}M{d}DT{h}H{m}M{s}S{w}W

ในรูปแบบนี้: Y - ปี, M - เดือน, D - วัน, T - ตัวคั่นเวลา, H - ชั่วโมง, M - นาที, S - วินาที, W - สัปดาห์

ก่อนตัวอักษรเหล่านี้ต้องเขียนค่า ที่สอดคล้องกัน ตัวอย่างเช่น 3Y จะหมายถึง สามปี และ 5Y2M จะหมายถึง 5 ปี และ 2 เดือน

หลังจากสร้าง วัตถุ DateInterval จะประกอบด้วยคุณสมบัติต่อไปนี้:

<?php $interval->y // ปี $interval->m // เดือน $interval->d // วัน $interval->h // ชั่วโมง $interval->i // นาที $interval->s // วินาที $interval->f // ไมโครวินาที $interval->invert // 1 ถ้าช่วงเวลาเป็นลบ $interval->days // จำนวนวัน (หากสร้างผ่าน diff()) ?>

มาดูการทำงานของช่วงเวลา จากตัวอย่าง:

ตัวอย่าง

สร้างช่วงเวลา 1 ชั่วโมง, 45 นาที และ 30 วินาที:

<?php $interval = new DateInterval('PT1H45M30S'); var_dump($interval); ?>

ผลลัพธ์การทำงานของโค้ด:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 0 'h' => 1 'i' => 45 's' => 30 )

ตัวอย่าง

สร้างช่วงเวลา 3 สัปดาห์ และ 2 วัน:

<?php $interval = new DateInterval('P3W2D'); var_dump($interval); ?>

ผลลัพธ์การทำงานของโค้ด:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 23 'h' => 0 'i' => 0 's' => 0 )

ตัวอย่าง

สร้างช่วงเวลา 5 เดือน, 10 วัน และ 6 ชั่วโมง:

<?php $interval = new DateInterval('P5M10DT6H'); var_dump($interval); ?>

ผลลัพธ์การทำงานของโค้ด:

DateInterval Object ( 'y' => 0 'm' => 5 'd' => 10 'h' => 6 'i' => 0 's' => 0 )

ตัวอย่าง

สร้างช่วงเวลา 2 ปี และ 15 นาที:

<?php $interval = new DateInterval('P2YT15M'); var_dump($interval); ?>

ผลลัพธ์การทำงานของโค้ด:

DateInterval Object ( 'y' => 2 'm' => 0 'd' => 0 'h' => 0 'i' => 15 's' => 0 )

ตัวอย่าง

สร้างช่วงเวลา 1 วัน, 12 ชั่วโมง และ 30 วินาที:

<?php $interval = new DateInterval('P1DT12H30S'); var_dump($interval); ?>

ผลลัพธ์การทำงานของโค้ด:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 1 'h' => 12 'i' => 0 's' => 30 )

ตัวอย่าง

สร้างช่วงเวลาแบบลบ 1 ปี และ 3 เดือน (ช่วงเวลาย้อนกลับ):

<?php $interval = new DateInterval('P1Y3M'); $interval->invert = 1; var_dump($interval); ?>

ผลลัพธ์การทำงานของโค้ด:

DateInterval Object ( 'y' => 1 'm' => 3 'd' => 0 'h' => 0 'i' => 0 's' => 0 'invert' => 1 )

ตัวอย่าง

สร้างช่วงเวลาแบบลบ 2 ชั่วโมง, 30 นาที (ช่วงเวลาย้อนกลับ):

<?php $interval = new DateInterval('PT2H30M'); $interval->invert = 1; var_dump($interval); ?>

ผลลัพธ์การทำงานของโค้ด:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 0 'h' => 2 'i' => 30 's' => 0 'invert' => 1 )

ตัวอย่าง

เพิ่มช่วงเวลาไปยังวันที่ปัจจุบัน:

<?php $date = new DateTime('2023-01-01'); $interval = new DateInterval('P10D'); $date->add($interval); echo $date->format('Y-m-d'); ?>

ผลลัพธ์การทำงานของโค้ด:

'2023-01-11'

ตัวอย่าง

คำนวณความแตกต่างระหว่างสองวันที่:

<?php $date1 = new DateTime('2023-01-01'); $date2 = new DateTime('2023-02-15'); $interval = $date1->diff($date2); echo $interval->format('%m months %d days'); ?>

ผลลัพธ์การทำงานของโค้ด:

'1 months 14 days'

ดูเพิ่มเติม

  • คลาส DateTime,
    ซึ่งแสดงถึงวันที่และเวลา
  • คลาส DateTimeZone,
    ซึ่งแสดงถึงเขตเวลา
ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ