轉(zhuǎn)換為日期格式的方法:1、使用“strtotime($string)”語句,將指定字符串類型的日期時間文本轉(zhuǎn)為時間戳;2、使用“date("Y-m-d H:i:s",時間戳)”語句格式化時間戳,將其轉(zhuǎn)為“年-月-日 時:分:秒”的日期格式。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版、DELL G3電腦
php將string轉(zhuǎn)為日期格式
實(shí)現(xiàn)方法:
-
使用strtotime()從字符串中提取時間日期,將英文文本描述的日期時間描述解析為 UNIX 時間戳
-
date()格式化時間戳,將其轉(zhuǎn)換為指定格式的日期
示例:
<?php header('content-type:text/html;charset=utf-8'); ini_set('date.timezone', 'Asia/Shanghai');//設(shè)置時區(qū) echo date("Y-m-d H:i:s",strtotime("now")), "<br />"; echo date("Y-m-d H:i:s",strtotime("10 September 2000")), "<br />"; echo date("Y-m-d H:i:s",strtotime("+1 day")), "<br />"; echo date("Y-m-d H:i:s",strtotime("+1 week")), "<br />"; echo date("Y-m-d H:i:s",strtotime("+1 week 2 days 4 hours 2 seconds")), "<br />"; echo date("Y-m-d H:i:s",strtotime("next Thursday")), "<br />"; echo date("Y-m-d H:i:s",strtotime("last Monday")), "<br />"; ?>
說明:
date()第一個參數(shù)格式化字符串中可以識別的特殊字符如下表所示:
字符 | 說明 | 返回值例子 |
---|---|---|
d | 月份中的第幾天,使用兩位的數(shù)字表示,不足兩位時在前面補(bǔ) 0 | 01 到 31 |
D | 星期幾的英文縮寫(使用 3 個字母表示) | Mon 到 Sun |
l(“L”的小寫字母) | 星期幾的英文單詞 | Sunday 到 Saturday |
N | 根據(jù) ISO-8601 標(biāo)準(zhǔn)格式,使用數(shù)字表示星期中的第幾天(PHP5.1.0 新加) | 1(表示星期一)到 7(表示星期天) |
S | 每月天數(shù)后面的英文后綴(使用 2 個字符表示) | st、nd、rd 或者 th。可以和 j 一起使用 |
w | 使用數(shù)字表示星期中的第幾天 | 0(表示星期天)到 6(表示星期六) |
z | 使用數(shù)字表示一年中的第幾天 | 0 到 365 |
W | 根據(jù) ISO-8601 標(biāo)準(zhǔn)格式,使用數(shù)字表示年份中的第幾周,每周從星期一開始,(PHP 4.1.0 新增) | 例如:42(當(dāng)年的第 42 周) |
F | 月份的英文單詞,例如 January 或者 June | January 到 December |
m | 使用兩位的數(shù)字表示當(dāng)前月份 | 01 到 12 |
M | 月份的英文縮寫 | Jan 到 Dec |
n | 使用數(shù)字表示當(dāng)前月份 | 1 到 12 |
t | 指定月份的天數(shù) | 28 到 31 |
L | 指定的年份是否為閏年 | 如果是閏年值為 1,否則為 0 |
o | 根據(jù) ISO-8601 標(biāo)準(zhǔn)格式使用數(shù)字表示年份,這和 Y 的作用相同(PHP 5.1.0 新增) | 1999 or 2019 |
Y | 使用 4 位數(shù)字表示完整的年份 | 例如:1999 或 2019 |
y | 使用 2 位數(shù)字表示年份 | 例如:99 或 03 |
a | 小寫的上午和下午值 | am 或 pm |
A | 大寫的上午和下午值 | AM 或 PM |
B | Swatch Internet 標(biāo)準(zhǔn)時 | 000 到 999 |
g | 使用 12 小時格式表示小時數(shù) | 1 到 12 |
G | 使用 24 小時格式表示小時數(shù) | 0 到 23 |
h | 使用 12 小時格式表示小時數(shù),有前導(dǎo)零 | 01 到 12 |
H | 使用 24 小時格式表示小時數(shù),有前導(dǎo)零 | 00 到 23 |
i | 使用兩位數(shù)字表示分鐘數(shù),有前導(dǎo)零 | 00 到 59> |
s | 使用兩位數(shù)字表示秒數(shù),有前導(dǎo)零 | 00 到 59> |
u | 毫秒(PHP 5.2.2 新增)。需要注意的是 date() 函數(shù)總是返回 000000,因?yàn)樗唤邮?integer 參數(shù),而 DateTime::format() 才支持毫秒 | 例如:654321 |
e | 時區(qū)標(biāo)識 | 例如:UTC、GMT、Atlantic/Azores |
I(大寫的“i”) | 是否為夏令時 | 夏令時為 1,否則為 0 |
O | 與格林尼治時間相差的小時數(shù) | 例如:+0200 |
P | 與格林尼治時間(GMT)的差別,小時和分鐘之間由冒號分隔 | 例如:+02:00 |
T | 本機(jī)所在的時區(qū) | 例如:EST、MDT(在 windows 下為完整文本格式,例如“Eastern Standard Time”,中文版會顯示“中國標(biāo)準(zhǔn)時間”) |
Z | 時差偏移量的秒數(shù),UTC 西邊的時區(qū)偏移量總是負(fù)的,UTC 東邊的的時區(qū)偏移量總是正的 | -43200 到 43200 |
c | ISO-8601 格式的日期 | 2014-02-12T15:19:21+00:00 |
r | RFC 822 格式的日期 | 例如:Thu,21 Dec 2000 16:01:07 +0200 |
U | 從 UNIX 紀(jì)元(January 1 1970 00:00:00 GMT)開始至今的秒數(shù) | 和 time() 返回相同的時間戳 |
擴(kuò)展知識:
在 PHP 中是通過日期和時間函數(shù)來獲取日期和時間的。日期和時間函數(shù)依賴于服務(wù)器的時間設(shè)置,服務(wù)器的時間設(shè)置默認(rèn)是格林尼治時間(零時區(qū)時間),如果不特意設(shè)置時間為特定時區(qū)時間,那么通過 PHP 有關(guān)函數(shù)獲取到的時間為零時區(qū)的時間,比北京時間少 8 個小時。
PHP 中可使用 ini_set() 函數(shù)設(shè)置指定配置選項(xiàng)的值,這個配置選項(xiàng)會在腳本運(yùn)行時保持新的值,并在腳本結(jié)束時恢復(fù)。函數(shù)的語法格式如下:
ini_set($varname, $newvalue)
其中 $varname 為待修改的配置選項(xiàng),$newvalue 為配置選項(xiàng)的新值。
提示:ini_set() 函數(shù)并不能修改所有的配置選項(xiàng),可以通過訪問“https://www.php.net/manual/zh/ini.list.php”來查看可以修改的配置選項(xiàng)。
推薦學(xué)習(xí):《PHP視頻教程》