如何在 PHP 中將 DateTime 轉換為字串

Ralfh Bryan Perez 2023年1月30日 2020年3月28日
  1. 使用 DateTime 類的 format() 方法
  2. 使用 date_format() 方法
  3. date_d.php 中使用預定義的格式
  4. 使用 list() 函式將日期轉換為字串
如何在 PHP 中將 DateTime 轉換為字串

在 PHP 中將 DateTime 轉換為字串非常容易,有一些專用的函式。例如,使用預定義的格式或使用 list()

使用 DateTime 類的 format() 方法

PHP DateTime 類用於管理日期和時間,它從 PHP 5.2 版開始引入。

在傳統的 PHP 函式上使用 DateTime 來管理日期的一些優勢:

  • 它可以處理更多的字串格式
  • 比其他函式容易。
  • 該介面將後端邏輯與一個乾淨的介面一起使用。

DateTime 類的有用方法之一是 format(),它根據給定的格式返回格式化的日期字串。

例:

$theDate    = new DateTime('2020-03-08');
echo $stringDate = $theDate->format('Y-m-d H:i:s');

//output: 2020-03-08 00:00:00

$stringDate 現在是來提供格式的字串。

注意
DateTime->format() 並不真正支援微秒。

使用 date_format() 方法

date_format() 方法將返回一個新的 DateTime 物件,然後根據給定的格式對日期進行格式化。

例:

$date = date_create_from_format('d M, Y', '08 Mar, 2020');
echo $newFormat = date_format($date,"Y/m/d H:i:s");

//output: 2020/03/08 00:00:00

date_create_from_format() 用於根據提供的格式解析時間字串。該函式接受三個引數,分別是 formattimetimezone(可選)。

在上面的示例中,date_format() 處理建立的日期以將其轉換為字串。

date_d.php 中使用預定義的格式

預定義格式列表:

define ('DATE_ATOM', "Y-m-d\TH:i:sP");
define ('DATE_COOKIE', "l, d-M-y H:i:s T");
define ('DATE_ISO8601', "Y-m-d\TH:i:sO");
define ('DATE_RFC822', "D, d M y H:i:s O");
define ('DATE_RFC850', "l, d-M-y H:i:s T");
define ('DATE_RFC1036', "D, d M y H:i:s O");
define ('DATE_RFC1123', "D, d M Y H:i:s O");
define ('DATE_RFC2822', "D, d M Y H:i:s O");
define ('DATE_RFC3339', "Y-m-d\TH:i:sP");
define ('DATE_RSS', "D, d M Y H:i:s O");
define ('DATE_W3C', "Y-m-d\TH:i:sP");

用法示例:

$dateFormat = new DateTime(); // this will return current date
echo $stringDate = $date->format(DATE_ATOM);

//output: 2020-03-08T12:54:56+01:00

上面的示例使用一種預定義格式,因此無需實際提供它。

使用 list() 函式將日期轉換為字串

list() 函式可用於在一次操作中將值分配給變數列表,但僅適用於數字陣列。當將陣列分配給多個值時,陣列中的第一項將分配給第一個變數,依此類推,直到變數數量結束。但是,變數的數量不能超過數字陣列的長度。

例:

$date = explode("/",date('d/m/Y/h/i/s')
list($day,$month,$year,$hour,$min,$sec) = $date);
echo $month.'/'.$day.'/'.$year.' '.$hour.':'.$min.':'.$sec;

//output: 03/08/2020 02:01:06

使用 list() 函式,你可以輕鬆地將 $day$month$year$hour$min$sec 用作變數。

相關文章 - PHP Date

相關文章 - PHP DateTime

相關文章 - PHP String