首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 取得當前或指定日期的星期幾(中英文對照)

     編輯:PHP 綜合知識

前言

在 PHP 中取得星期幾是常見需求,date() 函式提供多種格式化參數,搭配簡單陣列即可輸出中文「星期一」至「星期日」。本文整理三種常用情境:取得英文、數字、中文星期,以及指定日期查詢。

一、取得英文與數字星期

<?php
// 英文完整名稱:Sunday, Monday...
echo date('l');  

// 數字格式:0(星期日) ~ 6(星期六)
echo date('w');  
?>

注意: w 回傳 0 代表星期日,1 代表星期一,以此類推。

二、輸出中文星期幾

建立對照陣列,以 date('w') 為索引即可:

<?php
$weekArray = ['日', '一', '二', '三', '四', '五', '六'];
echo '星期' . $weekArray[date('w')];  // 例:星期三
?>

三、查詢指定日期的星期

date() 第二個參數接受 Unix 時間戳,搭配 strtotime() 解析日期字串:

<?php
$weekArray = ['日', '一', '二', '三', '四', '五', '六'];

// 指定日期字串(支援 Y-m-d、Y/m/d 等常見格式)
$targetDate = '2011-11-11';  
$timestamp = strtotime($targetDate);

echo $targetDate . ' 是 星期' . $weekArray[date('w', $timestamp)];
// 輸出:2011-11-11 是 星期五
?>

進階:封裝成可重複使用的函式

<?php
/**
 * 取得指定日期的中文星期
 * @param string $dateStr 日期字串,預設為今天
 * @param string $prefix  前綴文字,預設「星期」
 * @return string 例:星期三
 */
function getChineseWeekday($dateStr = 'today', $prefix = '星期') {
    $weekArray = ['日', '一', '二', '三', '四', '五', '六'];
    $timestamp = ($dateStr === 'today') ? time() : strtotime($dateStr);
    return $prefix . $weekArray[date('w', $timestamp)];
}

// 使用範例
echo getChineseWeekday();           // 今天
echo getChineseWeekday('2024-12-25'); // 指定日期
?>

常見問題 FAQ

  • Q: 為什麼 date('w') 回傳 0 是星期日?
    A: 這是 PHP 遵循 Unix 慣例,0=Sunday,1=Monday...6=Saturday。
  • Q: strtotime 解析失敗怎麼辦?
    A: 確認日期格式正確,或改用 DateTime::createFromFormat() 指定格式解析,較嚴謹。
  • Q: 時區會影響星期判斷嗎?
    A: 會。跨時區專案請在程式開頭設定 date_default_timezone_set('Asia/Taipei')。

小結

PHP 取得星期幾核心在於 date('w') 取得 0-6 數字,再透過陣列對照輸出中文。指定日期只需搭配 strtotime() 轉換時間戳即可。建議將常用邏輯封裝成函式,專案中隨處可用,減少重複程式碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved