如何在 PHP 中將日期轉換為時間戳

Minahil Noor 2023年1月30日
  1. 使用 strtotime() 函式將日期轉換為 PHP 中的時間戳
  2. 使用 strptime() 函式將日期轉換為 PHP 中的時間戳
  3. 使用 getTimestamp() 函式將日期轉換為 PHP 中的時間戳
  4. 使用 format() 函式將日期轉換為 PHP 中的時間戳
如何在 PHP 中將日期轉換為時間戳

在本文中,我們將介紹在 PHP 中將 date 轉換為 timestamp 的方法。

  • 使用 strtotime() 函式
  • 使用 strptime() 函式
  • 使用 getTimestamp() 函式
  • 使用 format() 函式

使用 strtotime() 函式將日期轉換為 PHP 中的時間戳

內建函式 strtotime() 將日期轉換為 Unix 時間戳。Unix 時間戳是從 Unix 時代(1970 年 1 月 1 日)計算出的總秒數。使用此函式的正確語法如下

strtotime($dateString,$timeNow);

此函式有兩個引數。$dateString 是應該符合 PHP 有效格式的日期/時間字串。它是必填引數。另一個引數 $timeNow 是可選的,它是用於計算相對日期的時間戳。如果省略第二個引數,則當前時間 now 是預設值。

<?php
$timestamp = strtotime("23-04-2020");
echo "The timestamp is $timestamp.";
?>

這裡的日期格式為 "d-m-Y"。我們僅傳遞了一個引數,因為它將把 date 轉換為 Unix 時間戳。

輸出:

The timestamp is 1587600000.

使用 strptime() 函式將日期轉換為 PHP 中的時間戳

這是將日期轉換為 Unix 時間戳的另一個功能。它不會將日期直接轉換為時間戳。它返回一個陣列,該陣列講述秒,分鐘,小時以及其他一些詳細資訊。我們可以使用這些詳細資訊將日期轉換為時間戳。

strptime($dateString, $format);

它有兩個必填引數。$dateString 是日期字串,$format 是解析 $dateString 的格式。

<?php
$array = strptime('23-04-2020', '%d-%m-%Y');
$timestamp = mktime(0, 0, 0, $array['tm_mon']+1, $array['tm_mday'], $array['tm_year']+1900);
echo "The timestamp is $timestamp.";
?>

輸出:

The timestamp is 1587600000.

生成陣列後,mktime() 函式將 date 轉換為 timestamp。

mktime() 函式的語法是

mktime(hour, minute, second, month, day, year, is_dst)

is_dst 指定日期時間是否為夏令時,但已從 PHP 7.0.0 中刪除。

警告
我們應該在 $array['tm_mon'] 上加 1,然後將和用作 mktime 中的 month 的引數,因為 $array['tm_mon'] 從'0’開始,或者換句話說,一月份的 $array['tm_mon'] 為 0。

使用 getTimestamp() 函式將日期轉換為 PHP 中的時間戳

DateTime 物件的 getTimestamp()方法是一種將日期轉換為時間戳的簡單方法。它有另一種表示方法 date_timestamp_get(),它是程式樣式表示。

$datetimeObject->getTimestamp(); 

我們將建立一個 Datetime 物件來呼叫此函式。這是呼叫函式的物件導向風格。

<?php
$date = new DateTime('2020-04-23');
$timestamp = $date->getTimestamp();
echo "The timestamp is $timestamp.";
?>

Datetime 類的物件 $date 已呼叫方法 getTimestamp()將 date 轉換為 Unix timestamp。

輸出:

The timestamp is 1587600000.

使用 format() 函式將日期轉換為 PHP 中的時間戳

我們還可以使用 DateTime 的 format()方法將 date 轉換為 timestamp。該方法還有另一種表示形式 date_format(),它是 format()函式的過程樣式表示。

$datetimeObject->format("U"); 

為了將 date 轉換為 timestamp,我們將作為字串傳遞的格式為 "U"

<?php
$dateObject = new DateTime('2020-04-23');
$timestamp = $dateObject->format("U");
echo "The timestamp is $timestamp.";
?>

Datetime 類的物件 $dateObject 呼叫了函式 format() 將日期轉換為 Unix 時間戳。

輸出:

The timestamp is 1587600000.

相關文章 - PHP DateTime

相關文章 - PHP Timestamp