喵喵笨兔 の 喵喵的家~遊戲天地 - 首頁(上版面)
喵喵笨兔 の 喵喵的家~遊戲天地 - 首頁(左版面)
首  頁 最新消息 遊戲攻略 遊戲影片 遊戲圖片 下載區 學習分享 留言板 FB粉絲團
 喵喵笨兔 の 喵喵的家~遊戲天地 - PHP 顯示當下日期、從日期字串求星期幾、日期的加減運算...等等的日期運用

PHP 顯示當下日期、從日期字串求星期幾、日期的加減運算...等等的日期運用

PHP date()函數

  • h:時 (00-12)
  • i:分 (00-59)
  • s:秒 (00-59)
  • a:午前 (am) 或午後 (pm)
  • d:日 (1-31)
  • m:月 (1-12)
  • Y:年
  • l (L的小寫):星期幾 (英文)
  • w:星期幾 (數字 0-6;0為星期日,1為星期一,以此類推)

 年月日間可用符號 " - " 或 " / " 或 " . " 符號來隔開。

PS

若使用 date( ) 函數,網頁上出現如下警告訊息:

  • Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now,

此為 PHP 時區未設定所致,遇此問題的解決法:

  1. 若是自架設 PHP 網站,打開 PHP 目錄內的 php.ini,尋找:
    ;date.timezone =
    改成 (以下設亞洲/台北):
    date.timezone = "Asia/Taipei"
    其中 "區域/地點" 視自己所需去設定,詳細時區代碼可至以下網站查詢:
    http://php.net/manual/zh/timezones.php
    其中還有 PRC (中國) 和 ROC (中華民國) 時區簡稱代碼可用 ^^,所以可設成如下:
    date.timezone = ROC
  2. 直接在 PHP 網頁內加入時區設定語法如下:(其中 "區域/地點" 代碼如上)
    <?php date_default_timezone_set('ROC'); ?>

    <?php ini_set('date.timezone','Asia/Taipei'); ?>

範例:直接參考相關用法唄!主要看紅色字部份,或直接複製所有程式碼,另存成一個 php 檔來觀看唄 ^ ^。

<!doctype html>
<html>
<head>
<meta charset="utf-8"> <title>喵喵笨兔 の 喵喵的家~遊戲天地 - PHP 顯示當下日期、從日期字串求星期幾、日期的加減運算</title> </head> <body>  直接用 date() 函數就可求得當天日期:<br>  現在(今天)年份:<?php echo date("Y"); ?><br>
 現在(今天)月份:<?php echo date("m"); ?><br>
 現在(今天)幾號:<?php echo date("d"); ?><br>
 現在(今天)日期:<?php echo date("Y-m-d"); ?><br>  現在(今天)日期(含時間):<?php echo date("Y/m/d h:i:s"); ?><br>  現在(今天)日期(含時間am/pm):<?php echo date("Y.m.d h:i:s a"); ?><br>  現在(今天)是星期?(英文):<?php echo date("l"); ?><br>  現在(今天)是星期?(數字):<?php echo date("w"); ?><br>  現在時間:<?php echo date("h:i:s"); ?><br>  現在時間幾點幾分:<?php echo date("h:i"); ?><br>  現在時間幾秒:<?php echo date("s"); ?> </body> </html>

範例結果:(網站是外國時區,所以您看到的當天時間或許有一天之差)

 直接用 date( ) 函數就可求得當天日期:
 現在(今天)年份:2024
 現在(今天)月份:12
 現在(今天)幾號:03
 現在(今天)日期:2024-12-03
 現在(今天)日期(含時間):2024/12/03 12:46:30
 現在(今天)日期(含時間 am/pm):2024.12.03 12:46:30 am
 現在(今天)是星期?(英文):Tuesday
 現在(今天)是星期?(數字):2
 現在時間:12:46:30
 現在時間幾點幾分:12:46
 現在時間幾秒:30


PHP strtotime()函數

 strtotime() 內的資料,若是日期則以1970-01-01 00:00:00 (您設的時區不同,則初始時間就不同,例如設Asia/Taipei,就變08:00:00了) 為基準換算為'秒';若是日期字串則轉換為日期格式,配合 date() 函數可求得相關日期唄!

範例:直接參考相關用法唄!主要看紅色字部份,或直接複製所有程式碼,另存成一個 php 檔來觀看唄 ^ ^。

<!doctype html>
<html>
<head>
<meta charset="utf-8"> <title>喵喵笨兔 の 喵喵的家~遊戲天地 - PHP 顯示當下日期、從日期字串求星期幾、日期的加減運算</title> </head> <body>  明天日期:<?php $d=strtotime("tomorrow"); echo date("Y-m-d",$d); ?><br>  昨天日期:<?php $d=strtotime("yesterday"); echo date("Y-m-d",$d); ?><br>  下次星期五日期:<?php $d=strtotime("next friday"); echo date("Y-m-d",$d); ?><br>  一周前日期:<?php $d=strtotime("-1 weeks"); echo date("Y-m-d",$d); ?><br>  三個月後日期:<?php $d=strtotime("+3 months"); echo date("Y-m-d",$d); ?><br>  二年前日期:<?php $d=strtotime("-2 years"); echo date("Y-m-d",$d); ?><br>  strtotime('1970-01-01') 顯示結果(秒):<?php echo strtotime('1970-01-01'); ?> </body> </html>

範例結果:(網站是外國時區,所以您看到的當天時間或許有一天之差)

明天日期:2024-12-04
昨天日期:2024-12-02
下次星期五日期:2024-12-06
一周前日期:2024-11-26
三個月後日期:2025-03-03
二年前日期:2022-12-03
strtotime('1970-01-01') 顯示結果(秒):-28800

PHP 從日期字串顯示中文今天是星期幾?

範例:主要看紅色字部份,或直接複製所有程式碼,另存成一個 php 檔來觀看唄 ^ ^。

<!doctype html>
<html>
<head>
<meta charset="utf-8"> <title>喵喵笨兔 の 喵喵的家~遊戲天地 - PHP 顯示當下日期、從日期字串求星期幾、日期的加減運算</title> </head> <body> 方法一:<br> <?php
$w=date('w'); //今天,返回數字0~6
$d1='2017-10-20'; //指定日期
$w1=date('w',strtotime($d1)); //指定日期,返回數字0~6
$weekarray=array("日","一","二","三","四","五","六"); //0表示星期日
echo '今天是星期'.$weekarray[$w].'<br>';
echo $d1.'是星期'.$weekarray[$w1];
?>

<p></p>
方法二:<br>
<?php
$date_time="2017-10-21 15:05:24"; //指定日期含時間
list($date)=explode(" ", $date_time); //取出日期部份,去除時間
list($Y,$M,$D)=explode("-",$date); //分離出年月日以便製作時戳
echo $date." (星期".mb_substr( "日一二三四五六",date("w", mktime(0,0,0,$M,$D,$Y)),1,"utf-8").")"; //若沒亂碼,utf-8可不用
echo "<br>";
$date="2017-10-25"; //指定日期不含時間
list($Y,$M,$D)=explode("-",$date); //分離出年月日以便製作時戳
echo $date." (星期".mb_substr( "日一二三四五六",date("w", mktime(0,0,0,$M,$D,$Y)),1,"utf-8").")";

echo "<br>";

$date=date('Y-m-d'); //今天(現在)
list($Y,$M,$D)=explode("-",$date); //分離出年月日以便製作時戳
echo "今天 ".$date." (星期".mb_substr( "日一二三四五六",date("w", mktime(0,0,0,$M,$D,$Y)),1,"utf-8").")";
?>
</body> </html>

範例結果:(網站是外國時區,所以您看到的當天時間或許有一天之差)

方法一:
今天是星期二
2017-10-20是星期五

方法二:
2017-10-21 (星期六)
2017-10-25 (星期三)
今天 2024-12-03 (星期二)


PHP 日期的加減運算

範例:直接參考相關用法唄!主要看紅色字部份,或直接複製所有程式碼,另存成一個 php 檔來觀看唄 ^ ^。

  • 順便說一下其中用的函數 floor():只取整數,若要四捨五入的整數則用 round(),要無條件進1的整數則用 ceil()
<!doctype html>
<html>
<head>
<meta charset="utf-8"> <title>喵喵笨兔 の 喵喵的家~遊戲天地 - PHP 顯示當下日期、從日期字串求星期幾、日期的加減運算</title> </head> <body> 以 strtotime() 函數來換算日期,求得的單位為"秒";一天 = 60秒x60分x24時 = 86400秒<br> 2017-10-22 減 217-10-20 = <?php echo strtotime('2017-10-22')-strtotime('2017-10-20'); ?> 秒<br>
2017-10-25 減 217-10-25 = <?php echo (strtotime('2017-10-25')-strtotime('2017-10-20'))/60/60/24; ?> 天<br>
<?php $today = strtotime(date('Y-m-d')); $day1='2030-01-01';
$endday = strtotime($day1);
$diff = floor(($endday - $today) / 86400);
echo '距離 '.$day1.' 還有 '.$diff.' 天'; ?>
</body> </html>

範例結果:

以 strtotime() 函數來換算日期,求得的單位為"秒";一天 = 60秒 x 60分 x 24時 = 86400秒
2017-10-22 減 217-10-20 = 172800 秒
2017-10-25 減 217-10-25 = 5 天
距離 2030-01-01 還有 1855 天
笨兔隨手筆記於 2017/10/18

喵喵笨兔 の 喵喵的家~遊戲天地
http://vv0817.tk
http://vvv.lionfree.net
http://qo3op.asuscomm.com/vvv
https://uoedgpkhyfwzmd7zua8myg-on.drv.tw/vvv