PHP語法高級篇(一):日期時間處理和包含文件

從本篇文章開始,將學習PHP的高級特性內容。本篇文章將記錄在PHP中如何進行日期時間處理和包含文件的學習過程。


一、日期和時間

在PHP中,date()?函數用于格式化日期或時間。

說明

date(string $format, ?int $timestamp = null): string

使用指定整數 timestamp(Unix 時間戳),或者使用當前時間(如果沒有指定時間戳),返回相應的指定格式的格式化字符串。換句話說,timestamp 是可選的。

參數

format

必需。指定時間戳的格式。

timestamp

可選。timestamp 參數是一個 int 的 Unix 時間戳,如未指定或是 null,參數值默認為當前本地時間。

1、獲取日期和時間?

date()?函數的格式參數指定了如何格式化日期或時間。

以下是一些常用于日期和時間的字符:
  • d?- 表示月份中的第幾天(01 到 31)
  • m?- 表示月份(01 到 12)
  • Y?- 表示年份(四位數字)
  • l?- 表示星期幾(小寫 'L')
  • H?- 24 小時制的小時(00 到 23)
  • h?- 12 小時制的小時(01 到 12),前面有零
  • i?- 分鐘(00 到 59),前面有零
  • s?- 秒(00 到 59),前面有零
  • a?- 小寫的上午和下午(am 或 pm)
其他字符,如 "/", ".", 或 "-" 也可以插入字符之間以添加其他格式。
示例
echo "今天是:" . date("Y-m-d") . "<br>";
echo "現在的時間是:" . date("H:i:s") . "<br>";
echo "今天是:" . date("Y-m-d H:i:s"). "<br>";

2、設置時區

如果從代碼中獲取的時間不正確,可能是因為服務器位于另一個國家或設置為不同的時區。此時,就需要根據特定位置使時間正確,我們需要設置要使用的時區。

date_default_timezone_set 函數用于設置腳本中所有日期/時間函數使用的默認時區。

說明

date_default_timezone_set(string $timezoneId): bool

設置所有日期/時間函數使用的默認時區,如果 timezoneId 無效,此函數返回 false,否則返回 true。

參數

timezoneId:時區標識符。有效的標識符列表請參考官方文檔:有效的標識符列表。

示例

// 設置時區為 "America/New_York"
date_default_timezone_set("America/New_York");
echo "今天是:" . date("Y-m-d H:i:s");

3、使用 mktime() 創建日期

我們現在使用 date() 函數都沒有傳入時間戳,使用的是當前的日期和時間。如果我們想傳入指定時間,應該怎么辦呢?

PHP 的?mktime()?函數返回日期的 Unix 時間戳。Unix 時間戳包含 Unix 紀元(1970 年 1 月 1 日 00:00:00 GMT)和指定時間之間的秒數。

說明

mktime(int $hour,?int $minute = null,?int $second = null,?int $month = null,?int $day = null,?int $year = null
): int|false

根據給出的參數返回 Unix 時間戳,如果時間戳不適合 PHP 整數則返回 false

任何可選或為 null 的參數都將根據本地日期和時間設置為當前值。

參數

hour

必需。相對于一天開始的小時數,由 month、day 和 year 確定。負值是指當天零點前的小時。值大于 23 是指接下來幾天的適當小時。

minute

可選。相對于 hour 開始的分鐘數。負值指的是上個小時的分鐘。大于 59 的值將指向接下來幾個小時的適當分鐘。

second

可選。相對于 minute 開始的秒數。負值是指前一分鐘的秒數。大于 59 的值是指接下來幾分鐘的適當秒。

month

可選。相對于去年年底的月份數。值 1 到 12 是指相關年份的正常日歷月份。小于 1 的值(包括負值)按相反的順序指向去年的月份,因此 0 是 12 月,-1 是 11 月,以此類推。值大于 12 是指接下來幾年的適當月份。

day

可選。相對于上個月月底的天數。值 1 到 28、29、30 或 31(取決于月份)是指相關月份的正常天數。小于 1 的值(包括負值)是指上個月的天數,因此 0 是上個月的最后一天,-1 是倒數第二天,以此類推。大于相關月份天數的值是指接下來幾個月的適當某一天。

year

可選。年份數,可以是兩位或四位數字,0-69 對應于 2000-2069,70-100 對應于 1970-2000。在如今系統中普遍把 time_t 作為一個 32 位有符號整數的情況下,year 的合法范圍是 1901 到 2038 之間。

注意:參數的順序很奇怪:month、day、year,而不是更合理的 year、month、day 順序。?

示例?

$d=mktime(11, 14, 45, 8, 6, 2022);
echo "創建的時間是:" . date("Y-m-d H:i:s", $d); // 輸出 "2022-08-06 11:14:45"

4、使用 strtotime() 從字符串創建日期

上文我們用 mktime() 完成了日期創建,但是該函數的參數比較多,使用起來比較麻煩。所以本節內容將說明如何直接使用字符串來進行日期創建。

PHP 的?strtotime()?函數用于將人類可讀的日期字符串轉換為 Unix 時間戳(自 1970 年 1 月 1 日 00:00:00 GMT 起的秒數)。

說明

strtotime(string $datetime, ?int $baseTimestamp = null): int|false

本函數接受包含英文日期格式的字符串并嘗試將其解析為 Unix 時間戳,成功則返回時間戳,否則返回 false。

參數

datetime

必需。日期/時間字符串。

baseTimestamp

可選。時間戳,用作計算相對日期的基礎。

示例?

$d=strtotime("tomorrow");
echo "明天是:" . date("Y-m-d", $d) . "<br>";$d=strtotime("next Saturday");
echo "下一個周六是:" . date("Y-m-d", $d) . "<br>";$d=strtotime("2021-01-16");
echo date("Y-m-d", $d) . "<br>";

二、包含文件

include(或?require)語句會獲取指定文件中存在的所有文本/代碼/標簽,并將其復制到使用?include?語句的文件中。當想在網站的多個頁面上包含相同的 PHP、HTML 或文本時,包含文件非常有用。
可以使用?include?或?require?語句將一個 PHP 文件的內容插入到另一個 PHP 文件中(在服務器執行它之前)。
include?和?require?語句是相同的,除了在失敗時:
  • require?將產生致命錯誤(E_ERROR)并停止腳本。
  • include?僅會產生警告(E_WARNING),并且腳本會繼續執行。
當一個文件被包含時,其中所包含的代碼繼承了 include 所在行的變量范圍。從該處開始,調用文件在該行處可用的任何變量在被調用的文件中也都可用。不過所有在包含文件中定義的函數和類都具有全局作用域。
語法
include "文件路徑";
require "文件路徑";

示例

vars.php
<?php
$color = "green";
$fruit = "apple";test.php
<?php
include "vars.php";
echo "A $color $fruit"; // 輸出 "A green apple"

當文件被應用程序需要時,應使用?require

當文件不是必需的,且文件未找到時應用程序需要繼續時,請使用?include

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/914253.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914253.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914253.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

請求服務端獲取broker的機房歸屬信息異常

該錯誤表明服務在嘗試獲取 broker 的 ?機房歸屬信息? 時遇到異常。以下是詳細分析和解決方案建議&#xff1a;?問題定位與常見原因??網絡問題?客戶端無法連接存儲機房信息的元數據服務?&#xff08;如配置中心、注冊中心&#xff09;。防火墻或安全組阻斷了相關端口&…

Android 中的多線程編程全面解析

Android 中的多線程編程全面解析 一、Android 線程模型基礎 主線程&#xff08;UI 線程&#xff09;特性 唯一性&#xff1a;每個應用只有一個主線程職責&#xff1a;處理 UI 操作和用戶交互限制&#xff1a;禁止在主線程執行耗時操作&#xff08;超過5秒會導致 ANR&#xff09…

golang -gorm 增刪改查操作,事務操作

增刪改查 1. 插入數據// api func SaveUser(ctx *gin.Context) {result : &common.Result{}user : &dao.User{}err : ctx.ShouldBindJSON(&user)if err ! nil {ctx.JSON(http.StatusOK, result.Fail(400, "請使用json數據格式傳值"))return}// 調用驗證函…

大數據時代UI前端的智能化服務升級:基于用戶情境的主動服務設計

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩!一、引言&#xff1a;從 “被動響應” 到 “主動預判” 的 UI 服務革命當用戶在暴雨天打開外賣…

CUDA性能優化實戰:7個步驟讓并行歸約算法提升10倍效率

本文深入探討了一個經典的并行計算算法——并行歸約&#xff08;Parallel Reduction&#xff09;的性能優化過程&#xff0c;通過七個漸進式的優化步驟&#xff0c;展示了如何將算法性能提升至極致。這項研究基于Mark Harris在NVIDIA網絡研討會中提出的優化方法&#xff0c;在重…

詳解梯度消失和梯度爆炸(反向傳播)?

什么是梯度消失&#xff1f;梯度消失&#xff08;Gradient Vanishing&#xff09; 是指在訓練神經網絡時&#xff0c;反向傳播過程中計算得到的梯度&#xff08;用于更新參數的重要信息&#xff09;隨著網絡層數的增加而急劇減小&#xff0c;甚至趨近于零的現象。這會導致深層網…

端到端自動駕駛:挑戰與前沿

端到端自動駕駛&#xff1a;挑戰與前沿 End-to-End Autonomous Driving: Challenges and Frontiers 自動駕駛研究社區已見證了越來越多采用端到端算法框架的方法的快速增長&#xff0c;這些方法利用原始傳感器輸入生成車輛的運動規劃&#xff0c;而不是專注于諸如檢測和運動預測…

rust cargo 編譯雙架構的庫

這個錯誤表明你的 Rust 工具鏈沒有安裝 aarch64-apple-darwin 目標平臺。以下是完整的解決方案&#xff1a; 解決方案 ??安裝目標平臺?? (必須步驟) rustup target add aarch64-apple-darwin??驗證安裝?? (可選但推薦) rustup target list --installed # 應該能看到 aa…

Apache Shiro 框架詳解

文章目錄一、Shiro 核心功能二、Shiro 架構2.1 三層架構2.2 核心組件&#xff08;SecurityManager 內部&#xff09;三、核心流程詳解3.1 認證流程&#xff08;登錄&#xff09;流程步驟&#xff1a;認證流程序列圖&#xff1a;3.2 授權流程&#xff08;權限校驗&#xff09;流…

【保姆級喂飯教程】Windows下安裝Git Flow

目錄前言一、SourceTree二、Git for Windows (previously MSysGit)1. 下載補丁1.1 getopt.exe1.2 libintl3.dll1.3 libiconv2.dll1.4 安裝補丁2. 安裝Git Flow3. 測試3.1 初始化&#xff08;Initialize&#xff09;3.2 設置遠程3.3 創建分支3.4 功能開發3.5 功能提交3.6 推送分…

manifest.json只有源碼視圖沒其他配置

項目場景&#xff1a;提示&#xff1a;這里簡述項目相關背景&#xff1a;有時候我們從git上面拉下代碼&#xff0c;第一次運行時發現&#xff0c;沒運行項&#xff0c;再看manifest.json文件&#xff0c;就只有json文件&#xff0c;沒有其他配置項原因分析&#xff1a;提示&…

數據分析-名詞

一、網頁訪問數據指標1.IP &#xff08;Internet Protocol&#xff09;獨立IP 通常采用獨立IP數&#xff0c; 理論上指00:00-24:00內相同IP地址重復訪問只被計算一次。而不同的商業統計工具&#xff0c;縮短去 掉重復統計的時間&#xff0c;也是數據統計放大的一個常用套路。 &…

UDP屬于是一種什么服務器?

UDP是一種傳輸層協議&#xff0c;通常會被應用在計算機網絡中&#xff0c;為企業與用戶提供無連接的數據信息傳輸功能&#xff0c;與TCP協議相比較來說&#xff0c;UDP會更加的簡單但是UDP在可靠性方面沒有一定的保證&#xff0c;屬于是一種基于UDP協議進行通信的服務器。UDP服…

ARM單片機OTA解析(一)

文章目錄一、單片機燒寫程序的幾種方法二、Bootloader如何加載啟動App一、單片機燒寫程序的幾種方法 在線應用編程&#xff0c;由開發者實現Bootloader功能&#xff0c;比如ARM單片機的Code分區中的Flash本是存儲用戶應用程序的區間(上電從此處執行用戶代碼)&#xff0c;開發者…

C語言基礎教程--從入門到精通

C語言基礎教程–從入門到精通&#xff08;總體概括&#xff09; 接下來會對每一個章節進行詳細的總結與整理&#xff0c;希望對大家有用&#xff01;大家一起學習&#xff01; 目錄C語言基礎教程--從入門到精通&#xff08;總體概括&#xff09;**接下來會對每一個章節進行詳細…

單細胞分析教程 | (二)標準化、特征選擇、降為、聚類及可視化

在完成質控&#xff08;QC&#xff09;后&#xff0c;我們已經過濾掉了低質量細胞、雙細胞和低表達基因&#xff0c;獲得了較為干凈的單細胞數據集單細胞分析教程 | &#xff08;一&#xff09;Python單細胞質控全流程。接下來&#xff0c;我們將進行以下關鍵步驟&#xff1a; …

大模型 Agent(智能體)技術簡介

大模型 Agent&#xff08;智能體&#xff09;技術 是當前人工智能領域的前沿方向&#xff0c;它賦予大型語言模型&#xff08;LLM&#xff09;自主感知、規劃、決策和行動的能力&#xff0c;使其不再局限于“被動應答”&#xff0c;而是能主動完成復雜任務。簡單來說&#xff0…

OneCode 3.0架構深度剖析:工程化模塊管理與自治UI系統的設計與實現

引言 OneCode 3.0作為新一代低代碼開發平臺&#xff0c;其架構設計圍繞"工程模塊化"與"UI自主化"兩大核心目標展開。本文將從底層接口到上層應用&#xff0c;全面解析OneCode 3.0的技術架構&#xff0c;包括核心工廠類、工程管理接口、數據倉庫設計以及動態…

功耗校準數據PowerProfile測試方法建議

場景步驟版本:xxxxA1A2結果&#xff08;mA&#xff09;screen,full1.打開飛行模式&#xff0c;滅屏時間最長&#xff0c;其他的基礎功能關2.進入到日歷應用界面3.將亮度設置至最大&#xff08;4095&#xff09;&#xff0c;待電流穩定后&#xff0c;測試5分鐘&#xff0c;記錄電…

[附源碼+數據庫+畢業論文]基于Spring+MyBatis+MySQL+Maven+vue實現的供電公司安全生產考試管理系統,推薦!

摘 要 使用舊方法對安全生產考試信息進行系統化管理已經不再讓人們信賴了&#xff0c;把現在的網絡信息技術運用在安全生產考試信息的管理上面可以解決許多信息管理上面的難題&#xff0c;比如處理數據時間很長&#xff0c;數據存在錯誤不能及時糾正等問題。 這次開發的供電公…