การแสดงวันที่ของ PHP ฉันจะรับวันที่และเวลาปัจจุบันใน PHP ได้อย่างไร แปลงวันที่และเวลาเป็นรูปแบบการประทับเวลา

ส่วนขยาย PHPสำหรับการทำงานกับวันที่และเวลา นี่คือชุดของคลาสที่ช่วยให้คุณสามารถแก้ไขปัญหาต่างๆ ได้มากมาย ฟังก์ชันเหล่านี้พร้อมใช้งานตั้งแต่เวอร์ชัน 5.2 เป็นต้นไป ซึ่งแต่ละคลาสจะแสดงสถานการณ์แบบเรียลไทม์:

วันที่และเวลาถูกแสดงโดยใช้วัตถุ DateTime

เขตเวลาแสดงโดยใช้ DateTimeZone

วัตถุ DateInterval แสดงถึงช่วงเวลา เช่น เมื่อเราต้องนับ 2 วันหรือชั่วโมงจากเวลาปัจจุบัน วัตถุนี้ไม่ได้ขึ้นอยู่กับเวลาที่เจาะจง แต่เป็นเพียงช่วงเวลาหนึ่งเท่านั้น

DatePeriod แสดงถึงช่วงเวลาระหว่างวันที่สองวัน

ตอนนี้เราจะมาดูการใช้งานจริงของสิ่งที่กล่าวมาข้างต้น

วันที่() และวันที่และเวลา

ถ้าเราจำเป็นต้องได้รับวันที่เราใช้ วันที่()มันง่ายและได้ผล เพียงผ่านรูปแบบวันที่ที่ต้องการ แต่ในทางปฏิบัติสิ่งนี้ไม่สะดวกนัก เช่น เมื่อจำเป็นต้องเปลี่ยนเวลาขึ้นอยู่กับเขตเวลา

DateTime ทำมากกว่าแค่ส่งคืนวันที่ ก่อนที่คุณจะสามารถใช้สิ่งนี้ได้ คุณต้องสร้างอินสแตนซ์ออบเจ็กต์ DateTime ใหม่ก่อน นี้จะกระทำเช่นเดียวกับในอื่น ๆ คลาส PHP:

$date = วันที่และเวลาใหม่();

ตัวสร้าง DateTime รับสตริงเป็นพารามิเตอร์ ในขณะนี้บรรทัดว่างเปล่า วันที่และเวลาปัจจุบันจะถูกตั้งค่าตามค่าเริ่มต้น

หากต้องการสร้างวันที่ที่เฉพาะเจาะจง คุณต้องส่งเงื่อนไขไปยังตัวสร้าง ด้านล่างนี้คุณจะเห็นบางส่วนซึ่งค่อนข้างชัดเจน:

New DateTime("2013, 24 มีนาคม") //DateTime จะแสดงวันที่ 24 มีนาคม 2013 DateTime ใหม่("2013-03-24") //DateTime จะแสดง 24 มีนาคม 2013 DateTime ใหม่("+2 วัน") // วันที่ 2 เริ่มจาก DateTime ใหม่ของวันนี้ ("พรุ่งนี้") // วันวันพรุ่งนี้

รายการรูปแบบทั้งหมดที่มีอยู่สามารถพบได้ในเอกสารอย่างเป็นทางการ

หากคุณไม่พบรูปแบบเวลาที่เหมาะสม คุณสามารถกำหนดได้ด้วยตนเอง DateTime::createFromFormat.

ตอนนี้เรามีวัตถุ DateTime สำเร็จรูปอยู่ในมือแล้ว เราก็สามารถทำสิ่งที่น่าสนใจได้มากมาย

การประทับเวลายูนิกซ์

$วันที่->getTimestamp();

การเปลี่ยนวันที่และเวลา

$date->setDate(2013, 12, 30); //yyyy, mm, dd จะกำหนดวันที่เฉพาะ $date->setTime(12, 3, 20); //hh, mm, ss (เป็นทางเลือก) จะตั้งเวลา $date->modify("tomorrow"); // พรุ่งนี้ก็ตั้งค่าแบบนี้ได้เลย! $วันที่->setTimestamp(1364798550); // ตั้งค่าวันที่และเวลาโดยใช้ Unix Stamp

เป็นที่น่าสังเกตว่าหากเราส่งพารามิเตอร์ที่สูงกว่าที่ยอมรับได้ PHP จะเปลี่ยนพารามิเตอร์เหล่านั้นโดยอัตโนมัติ ตัวอย่างเช่น $date->setDate(2013, 12, 35); จะกลับมา 2014-01-04 เช่นเดียวกับเวลา

การทำงานกับหลายวัน

เมื่อคุณคุ้นเคยกับ DateTime แล้ว แอปพลิเคชันของคุณจะง่ายขึ้นและชาญฉลาดยิ่งขึ้น เราหวังว่าคุณจะรักการออกเดทมากขึ้นกว่าเดิม

ตอนนี้เราจะมาดูการทำงานกับการคำนวณทางคณิตศาสตร์บ้าง สมมติว่าเราต้องเปรียบเทียบวันเกิดสองวัน:

$sheldon = new DateTime("20 พฤษภาคม 1980"); $neo = new DateTime("11 มีนาคม 1962"); ถ้า ($sheldon > $neo) echo "เชลดอนอายุน้อยกว่านีโอ";

ซึ่งสามารถทำได้โดยใช้สคริปต์อื่น แบบนี้:

$diff = $neo->diff($เชลดอน);

การเรียกใช้ฟังก์ชัน ความแตกต่างผลตอบแทน ช่วงเวลาวันที่วัตถุ. นี่คือสิ่งที่ดูเหมือน:

วัตถุ DateInterval ([y] => 18 [m] => 2 [d] => 9 [h] => 0 [i] => 0 [s] => 0 => 0 => 6645)

สิ่งเหล่านี้เป็นทรัพย์สินสาธารณะ คุณสามารถสร้างสิ่งที่น่าสนใจตามวัตถุนี้ได้

//Neo มีอายุมากกว่า 18 ปี 2 เดือน $diff->format("Neo มีอายุมากกว่า %Y ปี และ %m เดือน");

สิ่งที่มีประโยชน์ที่สุดคือคุณสามารถใช้วัตถุ DateInterval กับวัตถุ DateInterval อื่นที่คล้ายกันได้

$neo->เพิ่ม($diff); //วันเกิดของนีโอเปลี่ยนเป็นเชลดอน

โปรดทราบ:การแก้ไข DateTime เช่นในกรณีข้างต้น จะไม่ส่งคืนอ็อบเจ็กต์ใหม่ แต่เพียงแก้ไขอ็อบเจ็กต์เก่าเท่านั้น โปรดคำนึงถึงสิ่งนี้เมื่อทำงานกับแอปพลิเคชันของคุณ เปิดตัว PHP 5.5 แล้ว ชั้นเรียนใหม่ซึ่งส่งคืนอ็อบเจ็กต์ใหม่หลังจากการแก้ไข

ความแตกต่างไม่ใช่วิธีเดียวที่จะได้รับวัตถุช่วงเวลา เนื่องจากนี่คือคลาส จึงสามารถสร้างออบเจ็กต์ใหม่ได้ตามปกติ:

$new_diff = ช่วงวันที่ใหม่("P2Y");

จำนวนปี เดือน วัน ฯลฯ จะถูกส่งต่อไปยังตัวสร้าง ข้อมูลเพิ่มเติมสามารถพบได้ในเอกสารประกอบเกี่ยวกับตัวสร้าง

การทำงานกับเขตเวลา

เมื่อสร้างวัตถุ DateTime ใหม่ อาร์กิวเมนต์ที่สองจะระบุเขตเวลา หากเราละเว้นอาร์กิวเมนต์นี้ เขตเวลาจะถูกนำมาจาก php.ini date.timezone คุณสามารถเปลี่ยนแปลงได้ทันทีโดยการโทร date_default_timezone_set:

Date_default_timezone_set("อเมริกา/นิวยอร์ก"); ใหม่ DateTime("วันนี้"); //วัตถุ datetime เปลี่ยนเป็นเขตเวลานิวยอร์ก

คุณยังสามารถเปลี่ยนเขตเวลาได้โดยใช้วัตถุ DateTimeZone:

$เขตเวลา = DateTimeZone ใหม่("อเมริกา/นิวยอร์ก"); $เชลดอน->setTimezone($เขตเวลา); //วันเกิดของเชลดอนตามเวลานิวยอร์ก

คุณสามารถกำหนดเขตเวลาระหว่างการสร้างวัตถุ DateTime ได้:

$sheldon = new DateTime("20 พฤษภาคม 1980", $timezone);

สิ่งสำคัญคือต้องจำไว้ว่า setTimezone จะแก้ไขออบเจ็กต์ DateTime ดั้งเดิม เราขอให้เปลี่ยนวันที่นี้ตามเขตเวลา ในทางกลับกัน ในตัวอย่างสุดท้าย เราได้ส่งเขตเวลาไปยังตัวสร้าง โดยพูดว่า "วันที่ที่ฉันกำลังสร้างอยู่ในเขตเวลานี้"

รายการเขตเวลาที่ใช้ได้มีอยู่ในเอกสารประกอบ

ช่วงวันที่และเวลา

ฉันคิดว่าเอกสารอย่างเป็นทางการให้คำอธิบายที่ชัดเจนที่สุด:

ช่วยให้คุณสามารถเคลื่อนที่ภายในช่วงเวลาที่กำหนดในช่วงเวลาที่เท่ากัน

วันที่ระยะเวลาสร้างการสะสมของเวลาในช่วงที่กำหนดผ่านทาง ช่วงเวลาที่กำหนด- เราต้องผ่านวันที่เริ่มต้น ช่วงเวลา และวันที่สิ้นสุด ออบเจ็กต์ DateTime ใหม่จะถูกสร้างขึ้นสำหรับแต่ละช่วงเวลา

สมมติว่าเราต้องการให้วันเกิดของเชลดอนทั้งหมด โดยเริ่มจากวันเกิดของเขา:

//เนื่องจากวันเกิดมีปีละครั้ง ช่วงเวลาจะเป็นหนึ่งปี $interval = new DateInterval("P1Y"); // อาร์กิวเมนต์ที่สามคือวันที่สิ้นสุด new DateTime() == now $ period = new DatePeriod($sheldon, $interval, new DateTime()); foreach($ช่วงเวลาเป็น $dt) ( //วัตถุ DateTime echo $dt->format("Y-m-d - D"), "\n"; )

ผลลัพธ์จะเป็นดังนี้:

1981-05-20 - พุธ 1982-05-20 - พฤหัสบดี 1983-05-20 - ศุกร์ 1984-05-20 - อาทิตย์ 1985-05-20 - จันทร์ 1986-05-20 - อังคาร ...

ขณะนี้ช่วงเวลาดังกล่าวรวมถึงวันที่เริ่มต้นด้วย คุณสามารถกำจัดมันได้โดยส่งอาร์กิวเมนต์ที่สี่ไปยังตัวสร้าง:

$ช่วงเวลา = DatePeriod ใหม่($sheldon, $interval, DateTime ใหม่ (), DatePeriod::EXCLUDE_START_DATE);

มาดูกันว่านีโอฉลองวันเกิดของเขากี่ครั้งก่อนที่เชลดอนจะเกิด:

$bdays = DatePeriod ใหม่($neo, $interval, $sheldon, DatePeriod::EXCLUDE_START_DATE); เสียงสะท้อน iterator_count($bdays);

ส่วนขยาย

คลาสทั้งหมดที่เราดูในวันนี้สามารถขยายได้ด้วยวิธีการของตัวเอง วิธีทั่วไปในการสร้างฟังก์ชัน __toStringซึ่งจะช่วยให้คุณสามารถแสดงวัตถุ DateTime โดยไม่ต้องเรียกรูปแบบ

อะไรอีก?

อย่างที่คุณเห็น ส่วนขยายวันที่และเวลานี้มีความเป็นไปได้มากมาย ใน เวอร์ชันล่าสุด PHP มีคลาสใหม่ เพียงแค่ดูเอกสารประกอบ

คุณมี ตัวอย่างที่ดีใช้วันที่และเวลาใน PHP? แบ่งปันในความคิดเห็นด้านล่าง! ขอบคุณทุกคนที่อ่าน


( PHP 4, PHP 5, PHP 7)

วันที่ - จัดรูปแบบเอาต์พุตวันที่/เวลาของระบบ

คำอธิบาย

สตริง วันที่ (สตริง $ รูปแบบ [, int $ประทับเวลา = เวลา() ])

ส่งกลับสตริงที่จัดรูปแบบตามรูปแบบรูปแบบที่ระบุ การประทับเวลาที่ระบุโดยอาร์กิวเมนต์การประทับเวลาจะถูกใช้ หรือเวลาของระบบปัจจุบัน หากไม่ได้ระบุการประทับเวลา.

ดังนั้นการประทับเวลาจึงเป็นทางเลือกและเป็นค่าเริ่มต้นเป็นค่าที่ส่งคืนโดยฟังก์ชัน

เวลา() รายการพารามิเตอร์รูปแบบสตริงผลลัพธ์ ( เชือก) พร้อมวันที่ ดูตัวเลือกการจัดรูปแบบด้านล่าง นอกจากนี้ยังมีค่าคงที่วันที่/เวลาที่กำหนดไว้ล่วงหน้าหลายค่าที่สามารถใช้แทนพารามิเตอร์เหล่านี้ได้ ตัวอย่างเช่น:.

วันที่_RSS
แทนที่เทมเพลต "ด ดี มาย เอช:ไอ:ส" อักขระต่อไปนี้เป็นที่รู้จักในพารามิเตอร์รูปแบบ
อักขระในรูปแบบสตริง --- ---
คำอธิบาย ตัวอย่างค่าส่งคืน วัน 01 31
วันของเดือน 2 หลัก โดยมีศูนย์นำหน้า จาก วัน ถึงดี
ข้อความแสดงวันในสัปดาห์ 3 ตัวอักษร จันทร์ วัน 1 31
ดวงอาทิตย์เจ วันของเดือนโดยไม่มีศูนย์นำหน้า วัน (ตัวพิมพ์เล็ก "L")
ชื่อเต็มของวันในสัปดาห์ วันอาทิตย์ วันเสาร์ 5.1.0) วัน 1 เอ็น 7 หมายเลขซีเรียลของวันในสัปดาห์ตามมาตรฐาน ISO-8601 (เพิ่มใน
เวอร์ชัน PHP (วันจันทร์) ถึงวันที่ (วันอาทิตย์), , คำต่อท้ายภาษาอังกฤษสำหรับเลขลำดับของวันของเดือน 2 ตัวอักษรเซนต์ ndข้อความแสดงวันในสัปดาห์ 3 ตัวอักษร
หรือ ไทย วัน 0 - ใช้ร่วมกับ 6
หมายเลขซีเรียลของวันในสัปดาห์ (วันอาทิตย์) ถึงวันที่ (วันเสาร์) 0 365
z --- ---
หมายเลขลำดับของวันในปี (เริ่มจาก 0) จาก สัปดาห์ 42
หมายเลขลำดับของสัปดาห์ของปีตามมาตรฐาน ISO-8601 สัปดาห์เริ่มต้นในวันจันทร์ (เพิ่มใน PHP 4.1.0) --- ---
ตัวอย่างเช่น: (สัปดาห์ที่ 42 ของปี) วัน เดือนเอฟ
ชื่อเดือนเต็ม เช่น มกราคม หรือ มีนาคม มกราคม วัน 01 12
ธันวาคม วัน หมายเลขซีเรียลของเดือนโดยมีศูนย์นำหน้า
ชื่อย่อของเดือน 3 ตัวอักษร ม.ค วัน 1 12
ธ.ค n วัน 28 31
เลขลำดับของเดือนที่ไม่มีศูนย์นำหน้า --- ---
ที จำนวนวันในเดือนที่ระบุ 1 ปี 0 .
สัญญาณของปีอธิกสุรทิน ถ้าปีนั้นเป็นปีอธิกสุรทิน มิฉะนั้นโอ หมายเลขลำดับของวันในปี (เริ่มจาก 0)หมายเลขปีตามมาตรฐาน ISO-8601 มีความหมายเดียวกับ 1999 2003
ถ้าปีนั้นเป็นปีอธิกสุรทิน มิฉะนั้น ยกเว้นเมื่อหมายเลขสัปดาห์ ISO ( มีความหมายเดียวกับ 1999 , 2003
) เป็นของปีที่แล้วหรือปีหน้า; แล้วจะใช้ปีของสัปดาห์นั้น (เพิ่มใน PHP 5.1.0) ตัวอย่าง: มีความหมายเดียวกับ 99 , 03
หรือ --- ---
ลำดับเลขประจำปี 4 หลัก หมายเลขปี 2 หลักเวลา
Ante meridiem (อังกฤษ: "ก่อนเที่ยง") หรือ Post meridiem (อังกฤษ: "หลังเที่ยง") เป็นตัวพิมพ์เล็ก เช้า
ก่อนเที่ยงหรือโพสต์เมอริเดียมอิน ตัวพิมพ์ใหญ่ เช้า.พี.เอ็ม. วัน 000 999
บี เวลาในรูปแบบเวลาอินเทอร์เน็ต ( วัน 1 12
ระบบทางเลือก เวลาของวันนับถอยหลัง) วัน 0 23
นาฬิกาในรูปแบบ 12 ชั่วโมงแบบไม่มีศูนย์นำหน้า วัน 01 12
นาฬิกาในรูปแบบ 24 ชั่วโมงแบบไม่มีศูนย์นำหน้า วัน 00 23
ชม. นาฬิกาในรูปแบบ 12 ชั่วโมง โดยมีศูนย์นำหน้า วัน 00 59
ชม วินาทีที่มีศูนย์นำหน้า วัน 00 59
คุณ ไมโครวินาที (เพิ่มใน PHP 5.2.2) โปรดทราบว่า วันที่()จะกลับมาเสมอ 000000 , เพราะ มันยอมรับจำนวนเต็ม ( จำนวนเต็ม) พารามิเตอร์ ในขณะที่ วันที่และเวลา::รูปแบบ()รองรับไมโครวินาที สัปดาห์ 654321
เขตเวลา --- ---
รหัสมาตราส่วนเขตเวลา (เพิ่มใน PHP 5.1.0) มีความหมายเดียวกับ เวลาสากลเชิงพิกัด, GMT, แอตแลนติก/อะซอเรส
ฉัน(ทุนฉัน) ป้ายเวลาออมแสง 1 หากวันที่ตรงกับเวลาฤดูร้อน 0 มิฉะนั้น.
โอ ความแตกต่างจากเวลากรีนิช มีหน่วยเป็นชั่วโมง สัปดาห์ +0200
ความแตกต่างของ GMT ด้วยเครื่องหมายทวิภาคระหว่างชั่วโมงและนาที (เพิ่มใน PHP 5.1.3) สัปดาห์ +02:00
ตัวย่อเขตเวลา มีความหมายเดียวกับ EST, แพทยสภา ...
ซี โซนเวลาชดเชยเป็นวินาที สำหรับเขตเวลาที่ตั้งอยู่ทางตะวันตกของ UTC จะส่งกลับตัวเลขที่เป็นลบ และสำหรับเขตเวลาที่อยู่ทางตะวันออกของ UTC จะส่งกลับตัวเลขที่เป็นบวก วัน -43200 50400
วัน/เวลาเต็ม --- ---
วันที่ในรูปแบบ ISO 8601 (เพิ่มใน PHP 5) 2004-02-12T15:19:21+00:00
วันที่ใน » รูปแบบ RFC 2822 สัปดาห์ พฤ. 21 ธ.ค. 2543 16:01:07 +0200
คุณ จำนวนวินาทีที่ผ่านไปนับตั้งแต่เริ่มต้นยุค Unix (The Unix Epoch, 1 มกราคม 1970 00:00:00 GMT) ดูเพิ่มเติม การประทับเวลาที่ระบุโดยอาร์กิวเมนต์การประทับเวลาจะถูกใช้ หรือเวลาของระบบปัจจุบัน หากไม่ได้ระบุการประทับเวลา

อักขระอื่นๆ ที่พบในสตริงรูปแบบจะถูกพิมพ์โดยไม่มีการเปลี่ยนแปลงในสตริงผลลัพธ์ ซีกลับมาเสมอ 0 เมื่อใช้ จีเอ็มเดท().

ความคิดเห็น:

เนื่องจากฟังก์ชันดังกล่าวใช้เวลาประทับเวลาเช่น จำนวนเต็ม, การจัดรูปแบบตัวอักษร คุณจะมีประโยชน์เมื่อใช้ฟังก์ชันเท่านั้น date_format()และการประทับเวลาที่กำหนดเองที่สร้างขึ้นโดยใช้ฟังก์ชัน วันที่_สร้าง().

การประทับเวลา

พารามิเตอร์การประทับเวลาเผื่อเลือกคือ จำนวนเต็มการประทับเวลา โดยค่าเริ่มต้นเป็นเวลาท้องถิ่นปัจจุบัน หากไม่ได้ระบุการประทับเวลา กล่าวอีกนัยหนึ่ง ค่าเริ่มต้นจะเท่ากับผลลัพธ์ของฟังก์ชัน การประทับเวลาที่ระบุโดยอาร์กิวเมนต์การประทับเวลาจะถูกใช้ หรือเวลาของระบบปัจจุบัน หากไม่ได้ระบุการประทับเวลา.

ส่งกลับค่า

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

รายการการเปลี่ยนแปลง

เวอร์ชัน "ด ดี มาย เอช:ไอ:ส"
5.1.0 ช่วงวันที่ที่ถูกต้องสำหรับการประทับเวลาโดยทั่วไปคือ 13 ธันวาคม 1901 20:45:54 GMT ถึง 19 มกราคม 2038 03:14:07 GMT (พวกเขาตอบสนองขั้นต่ำและค่าสูงสุด จำนวนเต็มแบบเซ็นชื่อแบบ 32 บิต) อย่างไรก็ตาม สำหรับ PHP เวอร์ชันต่ำกว่า 5.1.0 ในบางรุ่นระบบปฏิบัติการ
5.1.0

(เช่น Windows) ช่วงนี้จำกัดเฉพาะวันที่ 01-01-1970 ถึง 19-01-2038 ข้อผิดพลาดที่เกี่ยวข้องกับเขตเวลาทำให้เกิดข้อผิดพลาดระดับแล้ว E_STRICT และ.

5.1.1 E_ประกาศ สำหรับรูปแบบมาตรฐาน

วันที่/เวลามีค่าคงที่พิเศษที่สามารถระบุเป็นพารามิเตอร์รูปแบบได้

ตัวอย่างที่ 1 ตัวอย่างการใช้งานฟังก์ชัน วันที่()

// ตั้งค่าเขตเวลาเริ่มต้น ใช้งานได้ตั้งแต่ PHP 5.1
date_default_timezone_set("UTC");

// จะแสดงผลดังนี้: วันจันทร์
วันที่สะท้อน ("l");

// จะแสดงผลดังนี้: วันจันทร์ที่ 8 สิงหาคม 2548 เวลา 15:12:46 น.
วันที่สะท้อน ("l jS \of F Y h:i:s A" );

// จะส่งออก: วันที่ 1 กรกฎาคม 2000 เป็นวันเสาร์
echo "วันที่ 1 กรกฎาคม 2000 ตรงกับวันที่ " . วันที่("l", mktime(0, 0, 0, 7, 1, 2000));

/* ตัวอย่างการใช้ค่าคงที่เป็นพารามิเตอร์การจัดรูปแบบ */
// จะแสดงผลดังนี้: วันพุธที่ 25 กันยายน 2556 เวลา 15:28:57 น. -0700
วันที่สะท้อน (DATE_RFC2822);

// จะแสดงผลดังนี้: 2000-07-01T00:00:00+00:00
วันที่สะท้อน (DATE_ATOM, mktime (0, 0, 0, 7, 1, 2000));
?>

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

ตัวอย่างที่ 2 การหลีกอักขระในฟังก์ชัน วันที่()

// จะแสดงผลดังนี้: วันพุธที่ 15
วันที่สะท้อน ("l \t\h\e jS" );
?>

หากต้องการแสดงวันที่ในอดีตและอนาคต การใช้ฟังก์ชันต่างๆ จะสะดวก วันที่()และ เอ็มเคไทม์().

ตัวอย่าง #3 ตัวอย่างการแชร์คุณสมบัติ วันที่()และ เอ็มเคไทม์()

$พรุ่งนี้ = mktime (0 , 0 , 0 , วันที่ ("m" ) , วันที่ ("d" )+ 1 , วันที่ ("Y" ));
$เดือนสุดท้าย = mktime (0 , 0 , 0 , วันที่ ( "m" ) - 1 , วันที่ ( "d" ), วันที่ ( "Y" ));
$nextyear = mktime (0 , 0 , 0 , วันที่ ( "m" ), วันที่ ( "d" ), วันที่ ( "Y" )+ 1 );
?>

ความคิดเห็น:

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

ตัวอย่างเพิ่มเติมของการใช้ฟังก์ชัน วันที่()- สิ่งสำคัญคือต้องทราบว่าคุณควรหลีกเลี่ยงอักขระใดๆ ที่คุณต้องการปล่อยไว้โดยไม่มีการเปลี่ยนแปลง สิ่งนี้ก็เป็นจริงสำหรับตัวละครเหล่านั้นด้วย รุ่นปัจจุบัน PHP ไม่ได้รับการยอมรับว่าเป็นการจัดรูปแบบ เนื่องจากอาจมีให้ใช้ในเวอร์ชันต่อๆ ไป

หากต้องการหลีกลำดับหลีก (เช่น \n) คุณควรใช้เครื่องหมายคำพูดเดี่ยว วันที่()

ตัวอย่าง #4 การจัดรูปแบบโดยใช้
// สมมติว่าวันที่ปัจจุบันคือวันที่ 10 มีนาคม 2544 เวลา 17:16:18 น.

// และเราอยู่ในเขตเวลาเวลามาตรฐานของภูเขา (MST)
$วันนี้ = วันที่ ("F j, Y, g:i a" ); // 10 มีนาคม 2544 17:16 น
$today = date("m.d.y"); // 03.10.01
$วันนี้ = วันที่("j, n, Y" ); // 10, 3, 2544
$today = date("Ymd"); // 20010310 $today = date ("h-i-s, j-m-y นี่คือวัน" );
$วันนี้ = วันที่ ("\i\t \i\s \t\h\e jS \d\a\y." ); //เป็นวันที่ 10 แล้ว.
$วันนี้ = วันที่ ("DM j G:i:s T Y" ); // วันเสาร์ที่ 10 มี.ค. 17:16:18 MST 2544
$วันนี้ = วันที่ ("H:m:s \m \i\s\ \m\o\n\t\h" ); // 17:03:18 น. คือเดือน
$วันนี้ = วันที่("H:i:s"); // 17:16:18
$today = date ("Y-m-d H:i:s" ); // 10-03-2544 17:16:18 (รูปแบบ MySQL DATETIME)
?>

หากต้องการจัดรูปแบบวันที่เป็นภาษาอื่น ให้ใช้แทน วันที่()ฟังก์ชั่น กำหนดสถานที่() E_STRICT strftime().

หมายเหตุ

ความคิดเห็น:

หากต้องการรับการประทับเวลาจากการแสดงสตริงของวันที่ คุณสามารถใช้ฟังก์ชันได้ สเตรโตไทม์()- นอกจากนี้บางฐานข้อมูลยังมี ฟังก์ชั่นดั้งเดิมเพื่อแปลงการแสดงวันที่ภายในเป็นการประทับเวลา (เช่น ฟังก์ชัน MySQL » UNIX_TIMESTAMP)

เพื่อทำงานกับวันที่ในการใช้งาน PHP ฟังก์ชั่นต่างๆ- เราจะเริ่มเรียนรู้ด้วยฟังก์ชัน เวลา.

ฟังก์ชันเวลา รูปแบบการประทับเวลา

การทำงาน เวลาส่งกลับค่าความแตกต่างเป็นวินาทีระหว่าง 1 มกราคม 1970 E_STRICT ช่วงเวลาปัจจุบัน- การแสดงวันที่นี้เรียกว่ารูปแบบ การประทับเวลา.

ทำไมคุณถึงต้องมีการประทับเวลา?

เวลาในรูปแบบ การประทับเวลาใช้ค้นหาความแตกต่างระหว่างวันที่เป็นวินาที

เช่น ฉันมีกำหนดเวลาสำหรับ วันที่ 1 มกราคมของปีปัจจุบันและการประทับเวลา สำหรับช่วงเวลาปัจจุบัน- ฉันจะลบอันหนึ่งออกจากอีกอันหนึ่งแล้วหาความแตกต่างระหว่างช่วงเวลาเหล่านี้ ในไม่กี่วินาที- ผมจะหารส่วนต่างนี้ด้วย 60 แล้วได้ส่วนต่างเป็นนาที (เนื่องจากในหนึ่งนาทีมี 60 วินาที) ผมจะหารมันอีก 60 แล้วได้ส่วนต่างเป็นชั่วโมง. และอื่นๆ

การใช้ฟังก์ชัน เวลาเราจะได้แต่ช่วงเวลาปัจจุบันเท่านั้น เพื่อรับการประทับเวลาวันที่ใดก็ได้ ควรใช้ฟังก์ชัน:

เอ็มเคไทม์

การทำงาน ควรใช้ฟังก์ชันฟังก์ชันเอ็มเคไทม์ เวลาทำงานคล้ายกับฟังก์ชัน แต่ต่างจากมันตรงที่รับพารามิเตอร์: mktime(ชั่วโมง นาที วินาที เดือน วัน ปี) (โปรดทราบว่าเดือนและวันกลับกัน

- ดูตัวอย่างงาน:สามารถละเว้นพารามิเตอร์ได้จากส่วนท้าย

- หากเราไม่เขียนปี (พารามิเตอร์สุดท้าย) ปีปัจจุบันจะถูกนำไปใช้โดยอัตโนมัติ หากเราไม่เขียนวันด้วย (พารามิเตอร์สุดท้าย) วันปัจจุบันและปีปัจจุบันจะถูกนำไปใช้ และอื่นๆ: มาแก้เรื่องทั่วไปกันงาน เวลา E_STRICT ควรใช้ฟังก์ชันบน - ให้เราต้องหา.ความแตกต่างในไม่กี่วินาที

ระหว่างเวลาปัจจุบันถึงเที่ยงวัน (12 ชั่วโมง 0 นาที 0 วินาที) ของวันที่ 1 กุมภาพันธ์ (กุมภาพันธ์เป็นเดือนที่ 2) 2000:ผลลัพธ์ที่ได้คือความแตกต่างในหน่วยวินาที 612717139 จะมีลักษณะเช่นนี้:

(รีเฟรชหน้าแล้วตัวเลขนี้จะเปลี่ยน) การประทับเวลามีความรู้ว่ารูปแบบคืออะไร

(เราจะต้องการมันในภายหลัง) เรามาศึกษาฟังก์ชันที่มีประโยชน์เพิ่มเติมสำหรับการทำงานกับวันที่ เช่น ฟังก์ชันวันที่กัน

การทำงาน วันที่แสดงวันที่และเวลาปัจจุบันในรูปแบบที่กำหนด

รูปแบบถูกระบุโดยคำสั่งควบคุม (ตัวอักษรภาษาอังกฤษ) และคุณสามารถแทรกตัวคั่นระหว่างคำสั่งเหล่านั้นได้ (เครื่องหมายยัติภังค์ ทวิภาค และอื่นๆ)

ทีม (ตัวพิมพ์ใหญ่แตกต่างจากปกติให้ความสนใจ!):

  • คุณ– จำนวนวินาทีที่ผ่านไปตั้งแต่วันที่ 1 มกราคม 1970 (นั่นคือ การประทับเวลา)
  • หมายเลขซีเรียลของวันในสัปดาห์– หมายเลขวันตั้งแต่ต้นปี
  • ถ้าปีนั้นเป็นปีอธิกสุรทิน มิฉะนั้น– ปี 4 หลัก.
  • ) เป็นของปีที่แล้วหรือปีหน้า; แล้วจะใช้ปีของสัปดาห์นั้น (เพิ่มใน PHP 5.1.0)- ปี เลขสองหลัก
  • ชื่อเดือนเต็ม เช่น มกราคม หรือ มีนาคม– เลขที่เดือน (มีศูนย์นำหน้า)
  • ชื่อย่อของเดือน 3 ตัวอักษร– ตัวเลขเดือนแบบไม่มีศูนย์นำหน้า
  • คำอธิบาย– จำนวนวันในเดือนนั้นจะเป็นตัวเลขสองหลักเสมอ (นั่นคือ ตัวแรกสามารถเป็นศูนย์ได้)
  • ข้อความแสดงวันในสัปดาห์ 3 ตัวอักษร– จำนวนวันในเดือนที่ไม่มีศูนย์นำหน้า
  • หรือ– วันในสัปดาห์ (0 - วันอาทิตย์, 1 - วันจันทร์ ฯลฯ)
  • - นาฬิกาในรูปแบบ 12 ชั่วโมง
  • – นาฬิกาในรูปแบบ 24 ชั่วโมง
  • ชม.- นาที.
  • ชม– วินาที
  • ที– 1 ถ้าเป็นปีอธิกสุรทิน, 0 ถ้าไม่ใช่ปีอธิกสุรทิน
  • หมายเลขลำดับของวันในปี (เริ่มจาก 0)– หมายเลขประจำสัปดาห์ของปี
  • ธ.ค– จำนวนวันในเดือนที่กำหนด

ตัวอย่างการทำงานกับวันที่:

พารามิเตอร์ที่สองของฟังก์ชันวันที่

การทำงาน วันที่มีวินาที พารามิเตอร์ทางเลือกซึ่งใช้เวลาในรูปแบบการประทับเวลา หากคุณผ่านพารามิเตอร์นี้ ฟังก์ชันวันที่จะจัดรูปแบบไม่ใช่ช่วงเวลาปัจจุบัน แต่จะเป็นรูปแบบที่ส่งผ่านเป็นพารามิเตอร์ตัวที่สอง นี้ การประทับเวลาสามารถรับได้เช่นผ่านทาง ควรใช้ฟังก์ชัน(แต่ไม่จำเป็น):

สามารถใช้ค้นหาจำนวนวันในสัปดาห์สำหรับวันที่ที่ระบุ - เราเพียงส่งผ่านมันเป็นพารามิเตอร์ตัวที่สองโดยใช้ฟังก์ชัน ควรใช้ฟังก์ชันและตั้งค่าอักขระควบคุมเป็นพารามิเตอร์แรก "ว":

ฟังก์ชันสโตรไทม์

ต่อไป คุณสมบัติที่มีประโยชน์ซึ่งเราจะวิเคราะห์เรียกว่า strtotime

การทำงาน สเตรโตไทม์- นี่คืออะนาล็อกของฟังก์ชัน mktime (ส่งคืนการประทับเวลาด้วย) ต่างกันตรงที่ต้องใช้วันที่ใน มากกว่ารูปแบบฟรี

ตัวอย่างเช่น ฉันสามารถส่งผ่านสตริงได้ "2025-12-31" และฟังก์ชันจะค้นหาว่าปีอยู่ที่ไหน เดือนอยู่ที่ไหน และวันที่อยู่ที่ไหน แล้วส่งคืนวันที่นี้ในรูปแบบการประทับเวลา

คุณสามารถทำอะไรได้อีก: คุณสามารถเขียนแบบนี้ - strtotime("ตอนนี้")- และเราจะได้ช่วงเวลาปัจจุบันทันเวลา หรือประมาณนั้น - strtotime("วันจันทร์หน้า")- และเราจะไปถึงวันจันทร์หน้า (วันจันทร์ในภาษาอังกฤษคือ “วันจันทร์”)

สามารถดูได้ทุกรูปแบบ

ตัวอย่างงาน:

รหัสต่อไปนี้จะส่งคืนวันที่ของวันจันทร์ก่อนหน้า:

วิธีบวกหรือลบวันที่

หากต้องการลบหรือเพิ่มช่วงเวลาหนึ่งให้กับวันที่คุณควรใช้ฟังก์ชันสามอย่างรวมกัน: date_create - เตรียมวันที่สำหรับงาน (วันที่จะต้องอยู่ในรูปแบบปีเดือนวัน) สร้างสิ่งที่เรียกว่า วัตถุวันที่ซึ่งดำเนินการจัดการเพิ่มเติม date_modify - เพิ่มหรือลบ date_format - แสดงวันที่ผลลัพธ์ในรูปแบบที่กำหนด เพื่อทำความเข้าใจวิธีการทำงานกับฟังก์ชันเหล่านี้ โปรดศึกษาตัวอย่างด้านล่าง

ตัวอย่างที่ 1

มาสร้างออบเจ็กต์ที่มีวันที่ในปี 2025 12 เดือน 31 วัน จากนั้นบวก 1 วันเข้าไปแล้วส่งออกในรูปแบบ "day.month.year"

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

ตัวอย่างที่ 2

มาสร้างออบเจ็กต์ที่มีวันที่ปี 2025 12 เดือน 31 วัน จากนั้นบวก 3 วันเข้าไปแล้วส่งออกในรูปแบบ "day.month.year"

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

ตัวอย่างที่ 3

มาสร้างออบเจ็กต์ที่มีวันที่ในปี 2025 12 เดือน 31 วัน จากนั้นบวกด้วย 3 วัน 1 เดือน แล้วส่งออกในรูปแบบ "day.month.year"

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

ตัวอย่างที่ 4

มาสร้างวัตถุที่มีวันที่เป็นปี 2025 1 เดือน 1 วัน จากนั้นลบ 1 วันจากนั้นส่งออกในรูปแบบ "day.month.year"

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

คุณควรทำอย่างไรต่อไป:

เริ่มแก้ไขปัญหาโดยใช้ลิงก์ต่อไปนี้: ปัญหาสำหรับบทเรียน

เมื่อคุณตัดสินใจทุกอย่างแล้ว ให้ไปยังการศึกษาหัวข้อใหม่

รู้เบื้องต้นเกี่ยวกับ OOP

  • บทเรียนหมายเลข
    แท็บใหม่ด้วย new.code.mu
    การแนะนำ
  • บทเรียนหมายเลข
    แท็บใหม่ด้วย new.code.mu
    คุณสมบัติ
  • บทเรียนหมายเลข
    แท็บใหม่ด้วย new.code.mu
    วิธีการ
  • บทเรียนหมายเลข
    แท็บใหม่ด้วย new.code.mu
    คุณสมบัติและ $this
  • บทเรียนหมายเลข
    แท็บใหม่ด้วย new.code.mu
    วิธีการและ $this
  • บทเรียนหมายเลข
    แท็บใหม่ด้วย new.code.mu
    สาธารณะส่วนตัว
  • บทเรียนหมายเลข
    แท็บใหม่ด้วย new.code.mu
    ตัวสร้าง
  • บทเรียนหมายเลข
    แท็บใหม่ด้วย new.code.mu
    ผู้ตั้งค่า Getters
  • บทเรียนหมายเลข
    แท็บใหม่ด้วย new.code.mu
    คุณสมบัติแบบอ่านอย่างเดียว
  • บทเรียนหมายเลข
    แท็บใหม่ด้วย new.code.mu
    หนึ่งคลาส - หนึ่งไฟล์
  • บทเรียนหมายเลข
    แท็บใหม่ด้วย new.code.mu
    วัตถุในอาร์เรย์
  • บทเรียนหมายเลข
    แท็บใหม่ด้วย new.code.mu
    มูลค่าทรัพย์สินเริ่มต้นในตัวสร้าง

เชือก วันที่(สตริง รูปแบบ[, int การประทับเวลา])

ส่งกลับเวลาที่จัดรูปแบบตามอาร์กิวเมนต์ รูปแบบโดยใช้การประทับเวลาที่ระบุโดยอาร์กิวเมนต์ การประทับเวลาหรือเวลาของระบบปัจจุบันหาก การประทับเวลาไม่ได้ระบุ กล่าวอีกนัยหนึ่ง การประทับเวลาเป็นทางเลือกและเป็นค่าเริ่มต้นเป็นค่าที่ส่งคืนโดยฟังก์ชัน การประทับเวลาที่ระบุโดยอาร์กิวเมนต์การประทับเวลาจะถูกใช้ หรือเวลาของระบบปัจจุบัน หากไม่ได้ระบุการประทับเวลา .

ความคิดเห็น:สำหรับระบบส่วนใหญ่ วันที่ที่ถูกต้องคือตั้งแต่วันที่ 13 ธันวาคม 1901, 20:45:54 GMT ถึง 19 มกราคม 2038, 03:14:07 GMT (วันที่เหล่านี้สอดคล้องกับค่าต่ำสุดและสูงสุดของจำนวนเต็มที่ลงนามแบบ 32 บิต) สำหรับ Windows วันที่ที่ถูกต้องคือตั้งแต่ 01/01/1970 ถึง 01/19/2038

ความคิดเห็น:หากต้องการรับการประทับเวลาจากการแสดงสตริงของวันที่ คุณสามารถใช้ฟังก์ชันได้ สเตรโตไทม์()- นอกจากนี้ ฐานข้อมูลบางแห่งยังมีฟังก์ชันของตนเองในการแปลงการแสดงวันที่ภายในเป็นการประทับเวลา (เช่น ฟังก์ชัน MySQL UNIX_TIMESTAMP)

อักขระต่อไปนี้เป็นที่รู้จักในพารามิเตอร์รูปแบบ

แทนที่เทมเพลต "ด ดี มาย เอช:ไอ:ส" อักขระต่อไปนี้เป็นที่รู้จักในพารามิเตอร์รูปแบบ
Ante meridiem หรือ Post meridiem เป็นตัวพิมพ์เล็ก เช้าหรือบ่าย
Ante meridiem หรือ Post meridiem เป็นตัวพิมพ์ใหญ่ เช้าหรือบ่าย
บี เวลาในมาตรฐานอินเทอร์เน็ตของ Swatch 000 ถึง 999
วันที่ในรูปแบบ ISO 8601 (เพิ่มใน PHP 5) 2004-02-12T15:19:21+00:00
วันของเดือน 2 หลักโดยมีศูนย์นำหน้า ตั้งแต่ 01 ถึง 31
ดี ชื่อย่อของวันในสัปดาห์ 3 ตัวอักษร ตั้งแต่วันจันทร์ถึงวันอาทิตย์
เอฟ (สัปดาห์ที่ 42 ของปี) ตั้งแต่เดือนมกราคมถึงธันวาคม
นาฬิกาในรูปแบบ 12 ชั่วโมงโดยไม่มีศูนย์นำหน้า ตั้งแต่ 1 ถึง 12
นาฬิกาในรูปแบบ 24 ชั่วโมงโดยไม่มีศูนย์นำหน้า ตั้งแต่ 0 ถึง 23
ชม. นาฬิกาในรูปแบบ 12 ชั่วโมงโดยมีศูนย์นำหน้า ตั้งแต่วันที่ 01 ถึง 12
ชม นาฬิกาในรูปแบบ 24 ชั่วโมงโดยมีศูนย์นำหน้า ตั้งแต่ 00 ถึง 23
ฉัน นาทีที่มีศูนย์นำหน้า 00 ถึง 59
ฉัน (เมืองหลวงฉัน) ป้ายเวลาออมแสง 1 ถ้าวันที่ตรงกับเวลาออมแสง มิฉะนั้น 0 เป็นอย่างอื่น
เจ วันของเดือนที่ไม่มีศูนย์นำหน้า ตั้งแต่วันที่ 1 ถึง 31
ล. (ตัวพิมพ์เล็ก "L") วันของเดือนโดยไม่มีศูนย์นำหน้า ตั้งแต่วันอาทิตย์ถึงวันเสาร์
จำนวนวันในเดือนที่ระบุ 1 ถ้าปีนั้นเป็นปีอธิกสุรทิน มิฉะนั้น 0
หมายเลขซีเรียลของเดือนที่มีศูนย์นำหน้า ตั้งแต่วันที่ 01 ถึง 12
ตั้งแต่ ม.ค. ถึง ธ.ค
n เลขลำดับของเดือนที่ไม่มีศูนย์นำหน้า ตั้งแต่ 1 ถึง 12
โอ ความแตกต่างจากเวลามาตรฐานกรีนิชเป็นชั่วโมง ตัวอย่างเช่น: +0200
วันที่ในรูปแบบ RFC 2822 ตัวอย่างเช่น: พฤหัสบดีที่ 21 ธันวาคม 2000 16:01:07 +0200
วินาทีที่มีศูนย์นำหน้า ตั้งแต่ 00 ถึง 59
(วันจันทร์) ถึงวันที่ st, nd, rd หรือ th ใช้ร่วมกับเจ
ที จำนวนวันในหนึ่งเดือน ตั้งแต่วันที่ 28 ถึง 31
โซนเวลาบนเซิร์ฟเวอร์ ตัวอย่าง: EST, MDT...
คุณ จำนวนวินาทีที่ผ่านไปนับตั้งแต่เริ่มต้นยุค Unix (The ยุคยูนิกซ์ 1 มกราคม 2513 00:00:00 GMT) ดูเพิ่มเติม การประทับเวลาที่ระบุโดยอาร์กิวเมนต์การประทับเวลาจะถูกใช้ หรือเวลาของระบบปัจจุบัน หากไม่ได้ระบุการประทับเวลา
ไทย ตั้งแต่ 0 (วันอาทิตย์) ถึง 6 (วันเสาร์)
หมายเลขลำดับของสัปดาห์ของปีตามมาตรฐาน ISO-8601 วันแรกของสัปดาห์คือวันจันทร์ (เพิ่มใน PHP 4.1.0) ตัวอย่างเช่น: 42 (สัปดาห์ที่ 42 ของปี)
ยกเว้นเมื่อหมายเลขสัปดาห์ ISO ( ตัวอย่าง: 1999, 2003
ตัวอย่าง: ตัวอย่าง: 99 , 03
z หมายเลขลำดับของวันในปี (นับจาก 0) ตั้งแต่ 0 ถึง 365
ซี โซนเวลาชดเชยเป็นวินาที สำหรับเขตเวลาทางตะวันตกของ UTC จะเป็นจำนวนลบ สำหรับเขตเวลาทางตะวันออกของ UTC จะเป็นค่าบวก -43200 ถึง 43200

อักขระอื่นๆ ที่พบในสตริง รูปแบบจะถูกส่งออกไปยังบรรทัดผลลัพธ์โดยไม่มีการเปลี่ยนแปลง Z จะส่งกลับ 0 เสมอเมื่อใช้ จีเอ็มเดท() .

ตัวอย่างการใช้ฟังก์ชัน date()

คุณสามารถหลีกเลี่ยงการจดจำอักขระเป็นอักขระการจัดรูปแบบได้โดยการหลีกอักขระด้วย \ หากอักขระนั้นมีลักษณะพิเศษเมื่อใช้ร่วมกับ \ (เช่น \t) คุณควรเพิ่มอีก \

การหลีกอักขระในฟังก์ชัน date()



2024 wisemotors.ru. วิธีนี้ทำงานอย่างไร. เหล็ก. การทำเหมืองแร่ สกุลเงินดิจิทัล