0Pricing
PHP Academy · บทเรียน

Unix Timestamps และ date()

รับเวลาปัจจุบันเป็น Unix timestamp และจัดรูปแบบด้วย date()

Unix Timestamps และ date() เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน

เวลาใน PHP

PHP แทนค่าด้วยเวลาประทับแบบ Unix — จำนวนวินาทีนับตั้งแต่วันที่ 1 มกราคม 1970 เวลา 00:00:00 UTC (จุดเริ่มต้นของ Unix) ฟังก์ชันสำคัญมีดังนี้:

  • time() — เวลาประทับแบบ Unix ปัจจุบัน
  • date($format, $timestamp) — จัดรูปแบบเวลาประทับ
  • mktime() — สร้างเวลาประทับจากส่วนประกอบของวันที่

ฟังก์ชันเวลา

รับเวลาประทับแบบ Unix ปัจจุบัน:

<?php
$now = time();
echo $now;           // e.g. 1716800000
echo gettype($now);  // integer

// 1 day in seconds
$tomorrow = time() + 86400;
$yesterday = time() - 86400;

echo date('Y-m-d', $tomorrow);  // tomorrow's date

อักขระรูปแบบวันที่

อักขระรูปแบบทั่วไปสำหรับการจัดรูปแบบวันที่:

  • Y — ปี 4 หลัก: 2024
  • m — เดือนที่มีเลขศูนย์นำหน้า: 01–12
  • d — วันที่มีเลขศูนย์นำหน้า: 01–31
  • H — ชั่วโมงแบบ 24 ชั่วโมงที่มีเลขศูนย์นำหน้า
  • i — นาทีที่มีเลขศูนย์นำหน้า
  • s — วินาที
  • D — ชื่อวันแบบย่อ: Mon
  • N — หมายเลขวันในสัปดาห์ตาม ISO: 1=Mon, 7=Sun

การจัดรูปแบบวันที่

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

<?php
$ts = time();

echo date('Y-m-d', $ts);           // 2024-05-27
echo date('d/m/Y', $ts);           // 27/05/2024
echo date('D, d M Y H:i:s', $ts);  // Mon, 27 May 2024 14:30:00
echo date('c', $ts);               // ISO 8601: 2024-05-27T14:30:00+00:00
echo date('U', $ts);               // Unix timestamp (same as time())

การสร้างเวลาประทับจากส่วนประกอบวันที่และเวลา

สร้างเวลาประทับจากส่วนประกอบวันที่และเวลาที่ระบุ:

<?php
// mktime(hour, min, sec, month, day, year)
$ts = mktime(0, 0, 0, 12, 25, 2024);  // Christmas 2024 midnight
echo date('Y-m-d', $ts);  // 2024-12-25

// Last day of month trick:
$lastDay = mktime(0, 0, 0, 3, 0, 2024);  // day 0 = last day of Feb
echo date('Y-m-d', $lastDay);  // 2024-02-29 (leap year)

การแปลงข้อความวันที่เป็นเวลาประทับ

แปลงสตริงวันที่ที่มนุษย์อ่านได้เป็นเวลาประทับ:

<?php
echo strtotime('2024-12-25');       // timestamp
echo strtotime('next Monday');      // next Monday's timestamp
echo strtotime('+1 week');          // 7 days from now
echo strtotime('last day of this month');  // end of month
echo strtotime('2024-01-01 +3 months');   // April 1, 2024

การคำนวณวันที่จากข้อความวันที่

คำนวณวันที่สัมพันธ์กันโดยใช้นิพจน์วันที่สัมพันธ์กัน:

<?php
$subscriptionStart = strtotime('2024-01-15');
$oneYearLater = strtotime('+1 year', $subscriptionStart);
$trialEnd = strtotime('+14 days');

echo date('Y-m-d', $oneYearLater);  // 2025-01-15
echo date('Y-m-d', $trialEnd);      // 14 days from today

// Days until event:
$event = strtotime('2024-12-31');
$daysLeft = (int) (($event - time()) / 86400);
echo "Days until NYE: $daysLeft";

เวลาประทับกับฐานข้อมูล

จัดเก็บวันที่ในฐานข้อมูลเป็นสตริง ISO หรือเวลาประทับแบบ Unix:

<?php
// Store as ISO string (recommended for readability):
$created_at = date('Y-m-d H:i:s');  // '2024-05-27 14:30:00'

// Store as Unix timestamp (fast integer comparison):
$created_ts = time();  // 1716800000

// Convert back:
$ts = strtotime($created_at);
$fmt = date('Y-m-d H:i:s', $created_ts);

date_create และ date_format

ทางเลือกแบบ OO แทนฟังก์ชันวันที่และการแปลงข้อความวันที่:

<?php
$dt = date_create('2024-05-27');
echo date_format($dt, 'D, d M Y');  // Mon, 27 May 2024

date_modify($dt, '+30 days');
echo date_format($dt, 'Y-m-d');  // 2024-06-26

// Equivalent OO:
$dt2 = new DateTime('2024-05-27');
$dt2->modify('+30 days');
echo $dt2->format('Y-m-d');

การตรวจสอบวันที่

ตรวจสอบว่าวันที่มีอยู่จริงหรือไม่:

<?php
var_dump(checkdate(2, 29, 2024));  // true (leap year)
var_dump(checkdate(2, 29, 2023));  // false (not leap year)
var_dump(checkdate(13, 1, 2024));  // false (no month 13)
var_dump(checkdate(1, 31, 2024));  // true

การวัดเวลาเพื่อเปรียบเทียบประสิทธิภาพ

ใช้ microtime(true) เพื่อวัดเวลาการทำงานด้วยความละเอียดต่ำกว่าหนึ่งวินาที:

<?php
$start = microtime(true);

// Simulate work
for ($i = 0; $i < 100000; $i++) {}

$end = microtime(true);
$duration = ($end - $start) * 1000;  // milliseconds
echo sprintf('Took %.2f ms', $duration);

ตรวจสอบอย่างรวดเร็ว

ฟังก์ชัน time() ของ PHP ส่งคืนค่าอะไร?

สรุป: เวลาประทับแบบ Unix และการจัดรูปแบบวันที่

ประเด็นสำคัญ:

  • time() — เวลาประทับแบบ Unix ปัจจุบัน
  • date($format, $ts) — จัดรูปแบบเวลาประทับใดก็ได้
  • mktime() — สร้างเวลาประทับจากส่วนประกอบวันที่
  • strtotime() — แยกวิเคราะห์วันที่ที่มนุษย์อ่านได้
  • ใช้รูปแบบ ISO 8601 สำหรับจัดเก็บในฐานข้อมูล
  • ใช้ microtime(true) สำหรับการวัดเวลาที่มีความละเอียดสูง

คำถามที่พบบ่อย

บทเรียน “Unix Timestamps และ date()” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “Unix Timestamps และ date()” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “Unix Timestamps และ date()”

รับเวลาปัจจุบันเป็น Unix timestamp และจัดรูปแบบด้วย date() คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “Unix Timestamps และ date()” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม

ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. Unix Timestamps และ date()
  2. คลาส DateTime
  3. การคำนวณวันที่ด้วย DateInterval
  4. เขตเวลาใน PHP
← กลับไปที่ PHP Academy