如何在 PHP 中將字串轉換為日期和日期時間
PHP 中有幾種將字串轉換為 Date
和 DateTime
的方法,比如可以使用作 strtotime()
和 date()
的組合,使用 DateTime::createFromFormat
類方法或同一類中的 format()
方法,或使用 PHP 的內建函式 date_create_from_format
。
strtotime()
和 date
的組合
strtotime()
函式返回從 1970 年 1 月 1 日起經過的秒數,就像 Linux 機器的時間戳一樣。它從傳遞給函式的提供的引數返回總秒數。
引數:
Time/Date
(必需) - 此引數以字串格式指定日期/時間。Now
(可選) - 此引數是可以用作計算相對日期的基礎的時間戳
date()
函式是用於格式化本地日期和時間並返回新的格式化日期字串的函式。
引數:
format
(必需)-此引數指定提供的字串的格式。timestamp
(可選)-此引數是整數 UNIX 時間戳,預設值為當前本地時間。
要同時合理地使用 strtotime()
()和 date()
,請在第一個日期使用 strtotime()
,然後使用 date()
將其轉換回去。
例:
$oldDate = strtotime('03/08/2020');
$newDate = date('Y-m-d',$time);
echo $newDate;
//output: 2020-03-08
**注意:**在用作日期格式的分隔符時,/
和 -
之間存在巨大差異,如果分隔符為/
,則假定使用美國格式 m/d/y
;如果分隔符為 -
,則採用歐洲的 d-m-y
格式。為避免歧義,建議使用 ISO 8601 (YYYY-MM-DD)
日期。
使用 DateTime::createFromFormat
或 date_create_from_format
DateTime::createFromFormat
是一個內建的 PHP 函式,它返回一個新的 DateTime
物件,該物件代表日期和時間格式。另一方面,date_create_from_format
是使用 DateTime::createFromFormat
的程式樣式。
引數:
Format
(必需)-此引數指定要使用的格式。Time
(必需)-此參數列示日期/時間字串。如果此引數為NULL
,則它將使用當前日期/時間。Timezone
(可選)-時區。預設值為當前時區。
DateTime::createFromFormat
舉例:
echo $dateNew = DateTime::createFromFormat('m-d-Y', '03-08-2020')->format('Y/m/d');
//output: 2020/03/08
date_create_from_format
舉例:
echo $dateNew = date_create_from_format("m-d-Y", "03-08-2020")->format("Y-m-d");
//output: 2020/03/08
date_create_from_format
和 DateTime::createFromFormat
之間的唯一區別是,DateTime::createFromFormat
在 PHP 5.2 及以下版本中不可用。
相關文章 - PHP Date
- 如何在 PHP 中新增天數到日期
- 如何使用 PHP 計算兩個日期之間的差
- 如何在 PHP 中將 DateTime 轉換為字串
- 如何在 PHP 中將一種日期格式轉換為另一種日期格式
- 如何在 PHP 中獲取當前日期和時間