PHP日期時間格式字串
阿新 • • 發佈:2018-12-19
格式字元 | 說明 | 示例 |
d | 一個月中的第幾天,帶前導0 | 01到31 |
j | 一個月中的第幾天,不帶前導0 | 1到31 |
D | 星期的文字表示,簡寫 | Mon到Sun |
l | 星期的文字表示,全拼 | Sunday到Saturday |
S | 一個月的第幾天的英文字尾(2位),解析時會忽略 | st、nd、rd或th |
M | 月份的文字表示,簡寫 | Jan到Dec |
F | 月份的文字表示,全拼 | January到December |
m | 月份的數值表示,帶前導0 | 01-12 |
n | 月份的數值表示,不帶前導0 | 1-12 |
Y | 4位數字表示的年 | 2018、1990 |
y | 2位數字表示的年 | 18、90 |
a | 上午或下午,小寫 | am、pm |
A | 上午或下午,大寫 | AM、PM |
g | 12小時制的小時,不帶前導0 | 1到12 |
h | 12小時制的小時,帶前導0 | 01到12 |
G | 24小時制的小時,不帶前導0 | 0到23 |
H | 24小時制的小時,帶前導0 | 00到23 |
i | 分鐘,有前導 0 | 00到59 |
s | 秒,有前導 0 | 00到59 |
u | 微秒,最多6為數字 | 45,654321 |
e/T | 時區名稱 | UTC、GMT、EST、MDT |
O | 以 UTC 時區為基準的小時偏移量 | -0500 |
P | 以 UTC 為基準的小時和分鐘的偏移量(冒號分隔) | -05:00 |
U | 從1970 00:00:00 GMT開始計算的時間秒數 | |
# | 代表分隔符中的任意一個(分號、冒號、斜槓、點、逗號、減號、小括號) | |
? | 隨機位元組,如果是UTF8字元,可能需要多個? | a、b、& |
* | 隨機位元組,直至遇到下一個分隔符號或數值 | |
! |
如果只包含!,則將所有欄位(年、月、日、時、分、秒、微秒、時區)設定為Unix紀元時間; 如果不止包含!,則在!左側的欄位,以及格式字串中不包含的欄位將設定為Unix紀元時間; 如果不包含!,則會將格式字串中不包含的欄位設定為當前時間 |
|
| | 將未被解析的欄位(年、月、日、時、分、秒、微秒、時區)設定為Unix紀元時間 | |
+ | 如果日期時間字串中包含除了格式字元之外的其他資料的話,不會發出一個錯誤,而是發出一個警告 |
<?php
$date=new DateTime("2018-1-2 02:06:03:235842pm EST");
echo $date->format("d"),",",$date->format("j"),"\n";
echo $date->format("D"),",",$date->format("l"),"\n";
echo $date->format("S"),",",$date->format("z"),"\n";
echo $date->format("M"),",",$date->format("F"),"\n";
echo $date->format("m"),",",$date->format("n"),"\n";
echo $date->format("Y"),",",$date->format("y"),"\n";
echo $date->format("a"),",",$date->format("A"),"\n";
echo $date->format("h"),",",$date->format("g"),"\n";
echo $date->format("H"),",",$date->format("G"),"\n";
echo $date->format("i"),",",$date->format("s"),",",$date->format("u"),"\n";
echo $date->format("e"),",",$date->format("T"),"\n";
echo $date->format("O"),",",$date->format("P"),"\n";
echo $date->format("U"),"\n";
echo $date->format("Y-m-d"),"\n";
$date=DateTime::createFromFormat("Y/m?#d h:i:s,ua T","2018/1a-2 02:06:03,235842pm EST");
if($date!=false){
echo $date->format("Y-m-d"),"\n";
}
$date=DateTime::createFromFormat("!","");
if($date!=false){
echo $date->format("Y-m-d H:i:s"),"\n";
}
$date=DateTime::createFromFormat("Y/m!?#d h:i:s,ua *","2018/1a-2 02:06:03,235842pm EST");
if($date!=false){
echo $date->format("Y-m-d H:i:s"),"\n";
}
$date=DateTime::createFromFormat("Y-m-j|","2018-11-02");
if($date!=false){
echo $date->format("Y-m-d H:i:s"),"\n";
}
$date=DateTime::createFromFormat("Y-m-j","2018-11-02");
if($date!=false){
echo $date->format("Y-m-d H:i:s"),"\n";
}
$date=DateTime::createFromFormat("+Y-m-j","2018年1月2日");
var_dump(DateTime::getLastErrors());
$date=DateTime::createFromFormat("Y-m-j","2018年1月2日");
var_dump(DateTime::getLastErrors());
?>