## checkdate(int $month, int $day, int $year): bool — 驗證一個格里高里日期(就是我們在使用的陽歷)
~~~
echo checkdate('01','31','2021');//1
~~~
## **date\_default\_timezone\_get**— 取得一個腳本中所有日期時間函數所使用的默認時區
~~~
date_default_timezone_get();//UTC utc:協調世界時,又稱世界統一時間、世界標準時間、國際協調時間
~~~
## **date\_default\_timezone\_set**(string $timezone\_identifier): bool — 設定用于一個腳本中所有日期時間函數的默認時區
[所支持的時區列表](https://www.php.net/manual/zh/timezones.php)
~~~
/*
Asia/Shanghai —— 上海
Asia/Chongqing —— 重慶
Asia/Urumqi —— 烏魯木齊
Asia/Hong_Kong —— 香港
Asia/Macao —— 澳門
Asia/Taipei —— 臺北
Asia/Singapore —— 新加坡
PRC —— 中國時區
*/
echo date_default_timezone_get();//UTC
echo time()."\n";//1638434020
echo date('Y-m-d H:i:s',time());//2021-12-02 08:33:40
date_default_timezone_set('PRC');
echo date_default_timezone_get();//PRC
echo time()."\n";//1638434020
echo date('Y-m-d H:i:s',time());//2021-12-02 16:33:40
~~~
## date\_parse\_from\_format(string $format, string $datetime): array — 獲取根據指定格式格式化的給定日期的信息
~~~
$date = "6.1.2009 13:00+01:00";
print_r(date_parse_from_format("j.n.Y H:iP", $date));//返回指定日期/時間的詳細信息(如年月日等)的關聯數組
~~~
## date\_parse(string $datetime): array — 返回指定日期/時間的詳細信息的關聯數組
~~~
print_r(date_parse("2006-12-12 10:00:00.5"));
~~~
## date\_sunrise—返回給定的日期與地點(東經北緯)的日出時間(PHP 5.1.2)
## date\_sunset—返回給定的日期與地點(東經北緯)的日落時間
## date\_sun\_info — 返回一個包含日落/日出和黃昏開始/結束信息的數組
## **date**(string $format, int $timestamp=time()): string — 格式化一個本地時間/日期
~~~
date('Y-m-d H:i:s',time());//2019-12-30 13:25:46
~~~
## getdate(int $timestamp = time()): array — 取得日期/時間信息
~~~
$today = getdate();
print_r($today);
/*結果:
Array
(
[seconds] => 40
[minutes] => 58
[hours] => 21
[mday] => 17
[wday] => 2
[mon] => 6
[year] => 2003
[yday] => 167
[weekday] => Tuesday
[month] => June
[0] => 1055901520
)
*/
~~~
gettimeofday(bool $return\_float = false): mixed — 取得當前時間
本函數是 gettimeofday(2) 的接口。返回一個關聯數組,包含有系統調用返回的數據。
當其參數設為 true 時,會返回一個浮點數而不是一個數組。
~~~
print_r(gettimeofday());
/*結果:
Array
(
[sec] => 1073504408//自 Unix 紀元起的秒數
[usec] => 238215//微秒數
[minuteswest] => 0//格林威治向西的分鐘數
[dsttime] => 1//夏令時修正的類型
)
*/
echo gettimeofday(true);//1073504408.23910
~~~
gmdate(string $format, int $timestamp = ?): string — 格式化一個 GMT/UTC 日期/時間
同 date() 函數完全一樣,只除了返回的時間是格林威治標準時(GMT)。例如當在中國(GMT +0800)運行以下程序時,第一行顯示“Jan 01 2000 00:00:00”而第二行顯示“Dec 31 1999 16:00:00”。
~~~
echo date("M d Y H:i:s", mktime (0,0,0,1,1,2000));//Jan 01 2000 00:00:00
echo gmdate("M d Y H:i:s", mktime (0,0,0,1,1,2000));//Dec 31 1999 16:00:00
~~~
gmmktime — 取得 GMT 日期的 UNIX 時間戳 和 mktime() 完全一樣,只除了返回值是格林威治標準時的時間戳
gmstrftime — 根據區域設置格式化 GMT/UTC 時間/日期
和 strftime() 的行為相同,只除了返回時間是格林威治標準時(GMT)。例如,當在東部標準時(EST,GMT -500)運行時,下面第一行顯示“Dec 31 1998 20:00:00”,而第二行顯示“Jan 01 1999 01:00:00”。
idate(string $format, int $timestamp = time()): int — 將本地時間日期格式化為整數 和 date() 不同,idate() 只接受一個字符作為 format 參數
~~~
echo idate('y', time());//2019
~~~
localtime(int $timestamp = time(), bool $is\_associative = false): array — 取得本地時間
~~~
$localtime = localtime();
print_r($localtime);
/*
Array
(
[0] => 24
[1] => 3
[2] => 19
[3] => 3
[4] => 3
[5] => 105
[6] => 0
[7] => 92
[8] => 1
)
*/
$localtime_assoc = localtime(time(), true);
print_r($localtime_assoc);
/*
Array
(
[tm_sec] => 24//秒數, 0 到 59
[tm_min] => 3//分鐘數, 0 到 59
[tm_hour] => 19//小時, 0 到 23
[tm_mday] => 3//月份中的第幾日, 1 到 31
[tm_mon] => 3//年份中的第幾個月, 0 (Jan) 到 11 (Dec)
[tm_year] => 105//份,從 1900 開始
[tm_wday] => 0//星期中的第幾天, 0 (Sun) 到 6 (Sat)
[tm_yday] => 92//一年中的第幾天, 0 到 365
[tm_isdst] => 1//夏令時當前是否生效? 如果是生效的是正數, 0 代表未生效,負數代表未知。
)
*/
~~~
microtime(bool $get\_as\_float = ?): mixed — 返回當前 Unix 時間戳和微秒數
~~~
echo microtime();//0.94835200 1638429327
echo microtime(false);//0.94835200 1638429327
echo microtime(true);//1638429327.9484
~~~
mktime(時,分,秒,月,日,年) — 取得一個日期的 Unix 時間戳(參數全是int型)
~~~
mktime(0, 0, 0, 12, 32, 1997);//883612800
~~~
strftime(string $format, int $timestamp = time()): string — 根據區域設置格式化本地時間/日期
~~~
echo strftime("%V,%G,%Y", strtotime("01/28/2021"));//04,2021,2021
~~~
| `格式` | 描述 | 返回值示例 |
| --- | --- | --- |
| *日* | \--- | \--- |
| `%a` | 當前區域星期幾的簡寫 | `Sun`到`Sat` |
| `%A` | 當前區域星期幾的全稱 | `Sunday`到`Saturday` |
| `%d` | 月份中的第幾天,十進制數字(范圍從 01 到 31) | `01`到`31` |
| `%e` | 月份中的第幾天,十進制數字,一位的數字前會加上一個空格(范圍從 ' 1' 到 '31') 在 Windows 上尚未按描述實現。更多信息見下方。 | `1`到`31` |
| `%j` | 年份中的第幾天,帶前導零的三位十進制數(范圍從 001 到 366) | `001`到`366` |
| `%u` | 符合 ISO-8601 星期幾的十進制數表達 \[1,7\],1 表示星期一 | `1`(星期一) 到`7`(星期日) |
| `%w` | 星期中的第幾天,星期天為 0 | `0`(星期天) 到`6`(星期六) |
| *周* | \--- | \--- |
| `%U` | 本年的第幾周,從第一周的第一個星期天作為第一天開始 | `13`(for the 13th full week of the year) |
| `%V` | %V - 本年第幾周的 ISO-8601:1988 格式,范圍從 01 到 53,第 1 周是本年第一個至少還有 4 天的星期,星期一作為每周的第一天。(用 %G 或者 %g 作為指定時間戳相應周數的年份組成。) | `01`到`53`(where 53 accounts for an overlapping week) |
| `%W` | 本年的第幾周數,從第一周的第一個星期一作為第一天開始 | `46`(for the 46th week of the year beginning with a Monday) |
| *月* | \--- | \--- |
| `%b` | 當前區域月份的簡寫 | `Jan`到`Dec` |
| `%B` | 當前區域月份的全稱 | `January`到`December` |
| `%h` | 當前區域月份的簡寫(%b 的別名) | `Jan`到`Dec` |
| `%m` | 兩位數的月份 | `01`(是一月份) 到`12`(是十二月份) |
| *年* | \--- | \--- |
| `%C` | 兩位數顯示世紀(年份除以 100,截成整數) | `19`是 20 世紀 |
| `%g` | 2 位數的年份,符合 ISO-8601:1988 星期數(參見 %V)。和 %V 的格式和值一樣,只除了如果 ISO 星期數屬于前一年或者后一年,則使用那一年。 | 比如:2009年1月6日那一周是`09`。 |
| `%G` | %g 的完整四位數版本 | 比如:2009年1月3日那一周是`2008`. |
| `%y` | 兩位數顯示年份 | 比如:`09`是 2009,`79`是 1979 |
| `%Y` | 四位數顯示年份 | 比如:`2038` |
| *時間* | \--- | \--- |
| `%H` | 以 24 小時格式顯示兩位小時數 | `00`到`23` |
| `%I` | 以 12 小時格式顯示兩位小時數 | `01`到`12` |
| `%l('L' 的小寫)` | 以 12 小時格式顯示小時數,單個數字前含空格 | `1`到`12` |
| `%M` | 兩位的分鐘數 | `00`到`59` |
| `%p` | 指定時間的大寫 “AM” 或 “PM” | 比如: 00:31 是`AM`,22:23 是`PM` |
| `%P` | 指定時間的小寫 “am” 或 “pm” | 比如:00:31 是`am`,22:23 是`pm` |
| `%r` | 和 "%I:%M:%S %p" 一樣 | 比如: 21:34:17 是`09:34:17 PM` |
| `%R` | 和 "%H:%M" 一樣 | 比如: 12:35 AM 是`00:35`,4:44 PM 是`16:44` |
| `%S` | 兩位數字表示秒 | `00`到`59` |
| `%T` | 和 "%H:%M:%S" 一樣 | 比如: 09:34:17 PM 是`21:34:17` |
| `%X` | 當前區域首選的時間表示法,不包括日期 | 例如:`03:59:16`或`15:59:16` |
| `%z` | 從 UTC 的時區偏移 或 簡寫(由操作系統決定) | 比如: 東部時間是`-0500`或`EST` |
| `%Z` | %z 沒有給出的 UTC 的時區偏移 或 簡寫(由操作系統決定) | 比如:`-0500`或`EST`是東部時間 |
| *時間和日期戳* | \--- | \--- |
| `%c` | 當前區域首選的日期時間表達 | 比如: 2009 年 2 月 5 日上午 12:45:10 是`Tue Feb 5 00:45:10 2009` |
| `%D` | 和 "%m/%d/%y" 一樣 | 比如: 2009 年 2 月 5 日是`02/05/09` |
| `%F` | Same as "%Y-%m-%d" (commonly used in database datestamps) | 比如:2009 年 2 月 5 日是`2009-02-05` |
| `%s` | Unix紀元的時間戳(和[time()](https://www.php.net/manual/zh/function.time.php)函數一樣) | 比如: 1979 年 9 月 10 日上午 8 點 40 分 00 秒是`305815200` |
| `%x` | 當前區域首選的時間表示法,不包括時間 | 比如: 2009 年 2 月 5 日是`02/05/09` |
| *其他* | \--- | \--- |
| `%n` | 換行符("\\n") | \--- |
| `%t` | Tab 字符("\\t") | \--- |
| `%%` | 文字上的百分字符("%") | \--- |
strptime(string $date, string $format): array — 解析由 strftime 生成的日期/時間 strptime() 返回一個將 date 解析后的數組,如果出錯返回 false。
~~~
$format = '%d/%m/%Y %H:%M:%S';
$strf = strftime($format);
echo "$strf\n";//03/10/2004 15:54:19
print_r(strptime($strf, $format));
/*
Array
(
[tm_sec] => 19//當前分鐘內的秒數(0-61)
[tm_min] => 54//當前小時內的分鐘數(0-59)
[tm_hour] => 15//午夜起的小時數(0-23)
[tm_mday] => 3//月份中的第幾天(1-31)
[tm_mon] => 9//自一月起過了幾個月(0-11)
[tm_year] => 104//自 1900 年起過了幾年
[tm_wday] => 0//自星期天起過了幾天(0-6)
[tm_yday] => 276// 本年自一月一日起過了多少天(0-365)
[unparsed] =>//date 中未能通過指定的 format 識別的部分
)
*/
~~~
strtotime(string $datetime, int $now = time()): int — 將任何字符串的日期時間描述解析為 Unix 時間戳
~~~
echo strtotime("+1 day",strtotime('2025-12-25')), "\n";//1766707200
echo strtotime("now"), "\n";//1638432685
echo strtotime("+1 week"), "\n";//1639037485
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";//1639224687
echo strtotime("next Thursday"), "\n";//1639008000
echo strtotime("last Monday"), "\n";//1638144000
//此格式 第二個參數無效
echo strtotime("10 September 2000"), "\n";//968544000
~~~
time — 返回當前的 Unix 時間戳
~~~
time();//1638432685
~~~
timezone\_name\_from\_abbr(string $abbr, int $utcOffset = -1, int $isDST = -1): string|false — 從縮寫中返回時區名稱
~~~
echo timezone_name_from_abbr("CET") . "\n";//Europe/Berlin
echo timezone_name_from_abbr("", 3600, 0) . "\n";//Europe/Paris
~~~
timezone\_version\_get(): string — 獲取 timezonedb 的版本
~~~
echo timezone_version_get();//2017.3
~~~
- 后端
- composer
- composer配置國內鏡像
- composer安裝及設置2
- PHP
- 貝塔SG11加密
- 申請KEY
- 開始加密
- php 中連接tcp服務的三種方式
- php websocket 教程
- editor內容轉換數組
- 使用正則判斷中文維吾爾文
- PHP常用函數總結
- 常用助手函數
- 通過Imagick把pdf轉換圖片
- 維吾爾語基本區轉換擴展區
- php GD庫生成一個由文字和圖片生成新的圖片
- aes加密
- php數組函數 -- array_column,array_multisort 實現二維數組排序
- PHP操作Excel
- php更新內容
- 輔助查詢(*)
- 【時間】操作
- 時間函數例子
- Date/Time 函數(不包含別名函數)
- php網絡相關
- HTTP請求的返回值含義說明
- 使用php語言開發一個類似數據庫操作的文件表類
- pinyin
- 維吾爾語基本區轉換擴展區(2)
- php獲取當前環境的信息
- laravel
- laravel 隊列的使用
- laravel 自定義助手函數
- laravel seeder的使用
- laravel項目從git下載命令
- laravel 多個數據庫配置
- laravel 填充假數據
- laravel 動態路由
- laravel 自定義 validate 響應
- laravel 創建追加字段的模擬訪問器
- laravel 線上環境的數據庫更改或添加字段
- laravel 模型查詢按照whereIn排序
- laravel 使用 workerman 通過TCP 文件傳輸功能
- laravel api Header添加Accept頭
- Laraval IDE 自動補全插件 laravel-ide-helper
- laravel 網站后臺
- laravel 設置路由
- laravel-第三方composer包
- laravel 開發技巧
- laravel 昨天,今天時間
- 使用寶塔計劃任務啟動laravel調度器
- laravel結合workerman第二節
- Laravel - 上傳多個文件
- 查詢聊天好友列表
- 事件系統 event, listener
- laravel 安裝 laravel-modules
- 自定義求看守器-toekn
- laravel限流
- 使用 Laravel api Resource 類時自定義分頁信息
- Laravel php artisan命令大全
- 驗證器
- workerman 創建wss服務
- 架構師必須知道的26項PHP安全實踐
- python
- Python讀取文件代碼塊已經備好,用的時候光拿(建議收藏)
- Python常用庫大全
- api 簽名驗證
- git
- git命令
- 十分鐘學會git基礎
- Git代碼同時上傳到GitHub和Gitee(碼云)
- Git - 多人協同開發利器,團隊協作流程規范與注意事項
- 刪除遠程倉庫的文件
- github查詢方法
- 錯誤
- 解除項目git版本控制
- linux
- sentos安裝supervisor
- PHP怎么守護進程運行php腳本
- 600條最強Linux命令總結
- centos開啟防火墻、開放指定端口
- 前端
- vue
- vue2發布之前的config簡單配置
- vue2安裝scss命令
- vue2父子組件之間雙向數據綁定
- 國際化雙語--安裝VueI18n
- vue3-setup 組件傳參(defineProps、defineEmits、defineExpose
- Vue3 新寫法速覽:十分鐘內輕松get
- 關于vue的外連接
- watch講解
- computed
- webpack 打包后生成很多小文件怎么優化?
- vue2 vue.config.js常見配置和打包部署測試
- 小程序
- 小程序長期訂閱消息
- 小程序自定義TabBar后如何實現keep-alive
- 收藏的html和css和js
- CSS 省略號(單行省略號、多行省略號)
- UyghurInput_a.js
- font.css
- 漂亮按鈕樣式
- clock.html
- css
- scroll css樣式
- CSS流動布局-頁面自適應
- css grid布局
- 禁止wap頁面調整字體大小
- CSS @media 和 min-width/max-width
- 網站變灰是怎么實現的
- 瀑布流實現方式
- javascript
- SortableJS拖動排序
- wondow scroll滾動到上邊
- 原生js插入HTML元素
- Konva.js —— 像操作DOM一樣操作canvas
- 通過canvas合并倆個圖片
- js scroll更多加載
- js 實現復制功能
- js判斷安卓和蘋果或者微信
- 瀏覽器打開控制臺禁止
- 原生js一些dom操作
- js http客戶端集合
- fetch
- axios
- canvas 點鐘
- layer dialog
- jquery 和 laravel ajax全局配置
- layui 獲取select的自定義參數
- konva.js中文開發文檔
- js 大文件分片上傳
- js監聽網絡狀態實現斷網重連后自動刷新頁面
- js生成video縮略圖
- JS獲取當前系統電量情況
- uniapp
- uni-app swiper數量過多時卡頓優化方案
- uniapp 帖子集合
- 微信wap
- wap分享朋友和朋友圈
- wap 手機頁面微信支付
- JsSdk微信公眾號支付
- 通用各種小知識
- 正則表達式
- JS正則匹配過濾字符串中的html標簽及html標簽內的內容
- 判斷維吾爾文輸入
- 正則表達式符號
- 正則表達式練習
- 百度網盤不限速下載助手
- 解決VSCode下載慢或下載失敗的問題
- 性能測試 使用Apache的ab測試工具
- nginx從入門到精通
- nginx
- Nginx 是怎么禁止訪問php的 ?
- 寶塔面板
- supervisor
- 卸載寶塔
- redis
- redis實用筆記
- redis入門到精通
- phpredis
- redis數據庫基礎
- PHP對Redis的基本操作
- ffmpeg
- 合并多個音視
- 獲取音視時長
- FFmpeg視頻處理入門教程(新手必看)
- 外連接
- 安裝
- PHP基于ffmpeg實現轉換視頻,截圖及生成縮略圖的方法
- Linux安裝ffmpeg
- docker
- 服務實現
- docker基本命令
- rewrite筆記
- 別人筆記鏈接
- 計算機常用知識
- 二進制1-10
- 斐波那契數列
- mysql
- 高性能高可用的MySQL,得從各種規范開始
- 讀寫分離配置
- 重要外連接,前端/ 后端/數據庫等等
- 關于程序必須收藏的文章鏈接集合
- markdown
- 一篇文章講清楚markdown