如何在 PHP 中將字串轉換為日期和日期時間

  1. strtotime()date 的組合
  2. 使用 DateTime::createFromFormatdate_create_from_format

PHP 中有幾種將字串轉換為 DateDatetime 的方法,比如可以使用作 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::createFromFormatdate_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_formatDateTime::createFromFormat 之間的唯一區別是,DateTime::createFromFormat 在 PHP 5.2 及以下版本中不可用。

相關文章 - PHP Date

  • 如何在 PHP 中將一種日期格式轉換為另一種日期格式
  • 如何在 PHP 中獲取當前日期和時間
  • 相關文章 - PHP String

  • PHP 中如何檢查字串是否以指定字串開頭
  • 如何在 PHP 中刪除字串中的所有空格