目次
文字列形式で日付と時刻を取得します
获取 Unix 时间戳
将日期时间字符串转换为时间戳
添加、减去和比较日期
有关 PHP 中 date() 的常见问题
如何获取 PHP 中的当前年份?
在 PHP 中获取当前月份的正确方法是什么?
如何用 PHP 获取星期几?
如何在 PHP 中获取 12 小时格式的当前时间?
我可以在 PHP 中获取 24 小时格式的当前时间吗?
转义日期格式字符的最佳方法是什么?
最终想法
ホームページ バックエンド開発 PHPチュートリアル PHP での日付と時刻の書式設定

PHP での日付と時刻の書式設定

Sep 01, 2023 pm 08:37 PM
時間の書式設定 日付の書式設定 PHPの日付

PHP での日付と時刻の書式設定

Web サイトを開発するときは、日付と時刻を操作する必要があることがよくあります。たとえば、投稿が最後に変更された日付を表示したり、読者がコメントを残した日付を表示したりすることができます。特別なイベントが発生するまでのカウントダウンを表示することもできます。

幸いなことに、PHP には、これらすべてを簡単に行うのに役立ついくつかの組み込みの日付と時刻関数が付属しています。

このチュートリアルでは、PHP で現在の日付と時刻をフォーマットする方法を説明します。また、日付文字列からタイムスタンプを取得する方法と、さまざまな日付を加算および減算する方法についても学習します。

文字列形式で日付と時刻を取得します

date($format, $timestamp) は、PHP で最もよく使用される日付と時刻関数の 1 つです。最初の引数として目的の日付出力形式を取り、指定された日付形式に変換する必要があるタイムスタンプ値として整数を受け取ります。 2 番目のパラメータはオプションです。省略すると、$format の値に基づいて現在の日付と時刻が文字列形式で出力されます。

$format パラメーターは、有効な値として文字の範囲を受け入れます。これらの文字の中には単純な意味を持つものもあります。 Y は 4 桁の年 (2018) の完全な数値表現を示しますが、y は年の最後の 2 桁のみを示します (今年)18)。同様に、H は先頭にゼロを付けて 24 時間形式で時間を表示しますが、h は先頭にゼロを付けて 12 時間形式で時間を表示します。

次に、最も一般的な日付形式の文字とその値の一部を示します。

###キャラクター### ###意味### ###例### D日付 (先頭にゼロが付きます)j先行ゼロを除いた日付D3文字の略語で表される曜日 ###月曜日に### l ###曜日### ###月曜日### MM#n9 または 12MM9月F9月Y18Ydate() 関数の出力を指定するために使用できる特殊文字は他にも多数あります。特殊なケースの詳細については、date()date() リーリー date() 関数を使用して時刻を出力することもできます。最も一般的に使用される時刻形式文字のいくつかを次に示します:
03または17
3 または 17
月は先頭にゼロが付いた数字です 09または12
月は先頭にゼロのない数字です
月を 3 文字の省略形で表します
一ヶ月中
2桁の年
###年間### 2018
関数のドキュメントの書式文字テーブルを参照することをお勧めします。 次に、 関数の実際の例をいくつか見てみましょう。これを使用して、現在の年、現在の月、現在の時刻などを取得できます。また、完全な日付文字列を取得するために使用することもできます。

###キャラクター### ###意味### ###例###

G

先行ゼロなしの 12 時間形式の時間 1 または 12

先頭にゼロを付けた 12 時間形式の時間01または12先行ゼロのない 24 時間形式の時間 1 または 13先頭にゼロを付けた 24 時間形式の時間 01または13#A ###朝### 午前/午後大文字先頭にゼロを含む分09または15先行ゼロ付きの秒数05または30

这里是一些输出格式化时间字符串的示例。

// Output — 11:03:37 AM
echo date('h:i:s A');

// Output — Thursday, 11:04:09 AM
echo date('l, h:i:s A');

// Output — 13 September 2018, 11:05:00 AM
echo date('d F Y, h:i:s A');

?>
ログイン後にコピー

如果您想在日期字符串中使用这些特殊字符,转义它们也很重要。

<?php

// Output — CEST201813am18 1115 Thursday.
echo date('Today is l.');

// Output — Today is Thursday.
echo date('\T\o\d\a\y \i\s l.');

// Output — Today is Thursday.
echo 'Today is '.date('l.');

?>
ログイン後にコピー

获取 Unix 时间戳

有时,您需要在 PHP 中获取当前 Unix 时间戳的值。借助 time() 函数,这非常容易。它返回一个整数值,描述自 1970 年 1 月 1 日午夜 (00:00:00) GMT 以来经过的毫秒数。

您还可以使用此功能来回返回时间。为此,您所要做的就是从 time() 的当前值中减去正确的秒数,然后将结果值更改为所需的日期字符串。以下是两个示例:

<?php

$ten_days_later = time() + 10*60*60*24;
// Output — It will be Sunday 10 days later.
echo 'It will be '.date('l', $ten_days_later).' 10 days later.';

$ten_days_ago = time() - 10*60*60*24;
// Output — It was Monday 10 days ago.
echo 'It was '.date('l', $ten_days_ago).' 10 days ago.';

?>
ログイン後にコピー

您应该记住的一件重要事情是,time() 返回的时间戳值与时区无关,并且获取自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数。这意味着在特定时间点,此函数将在美国、欧洲、印度或日本返回相同的值。

获取特定日期的时间戳的另一种方法是使用 mktime($hour, $min, $second, $month, $day, $year) 函数。当省略所有参数时,该函数仅使用当前本地日期和时间来计算时间戳值。此函数还可以与 date() 一起使用来生成有用的日期和时间字符串。

<?php

$some_time = mktime(1, 1, 1, 12, 3, 1994);
// Output — It was Saturday on 03 December, 1994.
echo 'It was '.date('l', $some_time).' on '.date('d F, Y', $some_time).'.';

?>
ログイン後にコピー

基本上,time() 可用于来回返回一段时间,而 mktime() 在您想要前往某个时间点时很有用特定时间点。

将日期时间字符串转换为时间戳

当您想要将字符串格式的不同日期和时间值转换为时间戳时,strtotime($time, [$now = time()]) 函数将非常有用。该函数可以将几乎所有类型的日期时间字符串解析为时间戳。

您一定要检查有效的时间格式、日期格式、复合日期时间格式和相对日期时间格式。

使用相对日期时间格式,该函数可以轻松地将常用字符串转换为有效的时间戳值。下面的例子应该可以清楚地说明:

<?php

$some_time = strtotime("10 months 15 days 10 hours ago");
// Output — It was Sunday on 29 October, 2017 03:16:46.
echo 'It was '.date('l', $some_time).' on '.date('d F, Y h:i:s', $some_time).'.';

$some_time = strtotime("next month");
// Output — It is Saturday on 13 October, 2018 01:18:05.
echo 'It is '.date('l', $some_time).' on '.date('d F, Y h:i:s', $some_time).'.';

$some_time = strtotime("third monday");
// Output — Date on the third monday from now will be 01 October, 2018.
echo 'Date on the third monday from now will be '.date('d F, Y', $some_time).'.';

$some_time = strtotime("last day of November 2021");
// Output — Last day of November 2021 will be Tuesday.
echo 'Last day of November 2021 will be '.date('l', $some_time).'.';

?>
ログイン後にコピー

添加、减去和比较日期

可以在日期中添加或减去特定的时间段。这可以借助 date_add()date_sub() 函数来完成。您还可以使用 date_diff() 函数来减去两个日期并以年、月、日或其他形式输出它们之间的差异。

通常,使用 DateTime 类以面向对象的方式执行任何此类与日期和时间相关的算术比按程序执行更容易。我们将在这里尝试这两种样式,您可以选择您最喜欢的一种。

<?php

$present = date_create('now');
$future = date_create('last day of January 2024');
$interval = date_diff($present, $future);
// Output — 05 years, 04 months and 17 days
echo $interval->format('%Y years, %M months and %d days');

$present = new DateTime('now');
$future = new DateTime('last day of January 2024');
$interval = $present->diff($future);
// Output — 05 years, 04 months and 17 days
echo $interval->format('%Y years, %M months and %d days');

?>
ログイン後にコピー

使用 DateTime::diff() 时,会从调用 diff() 方法的 DateTime 对象中减去DateTime 对象,该对象传递给 diff() 方法。当您编写过程样式代码时,将从第二个日期参数中减去第一个日期参数。

该函数和方法都返回一个 DateInterval() 对象,表示两个日期之间的差异。可以使用 format() 方法文档中列出的所有字符来格式化此间隔以提供特定输出。

当减去或增加时间间隔时,面向对象风格和过程风格之间的差异变得更加明显。

您可以使用 DateTime() 构造函数实例化新的 DateTime 对象。同样,您可以使用 DateInterval() 构造函数实例化 DateInterval 对象。它接受一个字符串作为其参数。间隔字符串以 P 开头,表示句点。之后,您可以使用整数值和分配给特定句点的字符来指定每个句点。您应该查看 DateInterval 文档以了解更多详细信息。

下面的示例说明了在 PHP 中添加或减去日期和时间是多么容易。

<?php

$now = new DateTime('now');
$the_interval = new DateInterval('P20Y5M20D');
$now->add($the_interval);

// Output — It will be Saturday, 05 March, 2039 after 20 years, 05 months and 20 days from today.
echo 'It will be '.$now->format('l, d F, Y').' after '.$the_interval->format("%Y years, %M months and %d days").' from today.';

$now = date_create('now');
$the_interval = date_interval_create_from_date_string('20 years 05 months 20 days');
date_add($now, $the_interval);

// Output — It will be Saturday, 05 March, 2039 after 20 years, 05 months and 20 days from today.
echo 'It will be '.$now->format('l, d F, Y').' after '.$the_interval->format("%Y years, %M months and %d days").' from today.';

?>
ログイン後にコピー

您还可以使用比较运算符来比较 PHP 中的日期。这有时会派上用场。让我们使用比较运算符和其他 DateTime 方法创建一个圣诞节计数器。

<?php

$now = new DateTime('today');
$christmas = new DateTime('25 December 2018');

while($now > $christmas) {
    $christmas->add(new DateInterval('P1Y'));
}

if($now < $christmas) {
    $interval = $now->diff($christmas);
    echo $interval->format('%a days').' until Christmas!';
}

if($now == $christmas) {
    echo 'Merry Christmas :)';
}

// Output — 103 days until Christmas!

?>
ログイン後にコピー

我们首先创建两个 DateTime 对象来存储当前时间和今年圣诞节的日期。之后,我们运行 while 循环,不断向 2018 年圣诞节日期添加 1 年,直到当前日期小于圣诞节日期。当代码在 2024 年 1 月 18 日运行时,这将很有帮助。只要圣诞节日期小于运行此脚本时的当前日期,while 循环就会增加圣诞节日期。

我们的圣诞节计数器现在可以在未来几十年内正常工作,不会出现任何问题。

有关 PHP 中 date() 的常见问题

关于从 PHP 中的 date() 函数获取不同类型的信息,时不时会出现一些常见问题。我们将尽力在这里回答所有问题。

如何获取 PHP 中的当前年份?

您可以使用 date('y')date('Y') 获取 PHP 中的当前年份。使用大写字母 Y 将为您提供当前年份的所有数字,例如 2021。使用小y只会给出最后两位数字,例如21

<?php

echo date('Y');
// 2021

echo date('y');
// 21

?>
ログイン後にコピー

在 PHP 中获取当前月份的正确方法是什么?

在 PHP 中,有四种不同的字符用于获取当前月份,具体取决于您想要的格式。您可以使用大写字母 F 获取月份的完整名称,例如 February,或者使用 M 获取较短的三字母格式的月份

您还可以使用mn以数字形式获取当前月份,这将分别为您提供带前导零和不带前导零的月份。

<?php

echo date('F');
// February

echo date('M');
// Feb

echo date('m');
// 02

echo date('n');
//  2

?>
ログイン後にコピー

如何用 PHP 获取星期几?

您还可以通过使用四个不同的字符来获取 PHP 中的星期几。大写字母 D 将用三个字母表示一周中的某一天,例如 MonTue。使用 l(小写 L)将为您提供一周中某一天的全名。

您可以使用 w 获取一周中各天的 0(星期日)和 6(星期六)之间的数值>.

<?php

echo date('D');
// Fri

echo date('l');
// Friday

?>
ログイン後にコピー

如何在 PHP 中获取 12 小时格式的当前时间?

您可以使用 gh 获取 12 小时格式的当前时间。使用g,您将获得不带任何前导零的时间,而h将添加一些前导零。可以使用a(小写字母)或A(大写字母)添加 AM 或 PM。

<?php

echo date('g:i:s a');
// 5:05:19 am

echo date('h:i:s A');
// 05:05:19 AM

?>
ログイン後にコピー

我可以在 PHP 中获取 24 小时格式的当前时间吗?

使用字符GH将为您提供24小时格式的当前小时。 G 不会出现任何前导零,但 H 会添加前导零。

<?php

echo date('G:i:s');
// 15:06:48

?>
ログイン後にコピー

转义日期格式字符的最佳方法是什么?

date() 函数接受字符串作为参数,但许多字符都有明确定义的含义,例如 Y 表示年份,F 表示年份月。这意味着直接使用这些字符作为字符串的一部分可能并不总是能获得所需的结果。

如果您希望 date() 函数输出这些字符,那么您必须先对它们进行转义。这是一个例子:

<?php

echo 'Today is '.date("l the jS of F Y");
// Today is Friday 2804Europe/Berlin 19th 2021f February 2021

echo 'Today is '.date("l \\t\h\\e jS \of F Y");
// Today is Friday the 19th of February 2021

?>
ログイン後にコピー

某些字符(例如 t)需要两个反斜杠,因为 \t 用于制表符。如果可能,建议将您想要回显的常规字符串放在 date() 之外。否则,您将转义很多字符。

最终想法

在本教程中,我们学习了如何使用 date() 函数以所需格式输出当前日期和时间。我们还看到 date() 也可用于仅获取当前年份、月份等。之后,我们学习了如何获取当前时间戳或将有效的 DateTime 字符串转换为时间戳。最后,我们学习了如何从不同的日期中添加或减去一段时间。

我尝试在此处介绍关键的 DateTime 函数和方法。您绝对应该查看文档以了解本教程中未涵盖的功能。如果您有任何疑问,请随时在评论中告诉我。

H
G
H
午前/午後の小文字 #A
###朝### ######私######
s

以上がPHP での日付と時刻の書式設定の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

時間を AM-PM 形式でフォーマットする Python プログラム 時間を AM-PM 形式でフォーマットする Python プログラム Aug 28, 2023 pm 05:29 PM

Python には、午前/午後形式で時刻を見つけるために使用できる strftime() や datetime.now() などの組み込みの時刻関数がいくつかあります。 AM/PM 形式の時刻は、ユーザー インターフェイス、レポートとドキュメント、データの視覚化、イベントのスケジュールなど、さまざまなアプリケーションで使用されます。時刻が午前 11 時 59 分 00 秒から正午 12 時までの間の場合、AM 時間と言います。同様に、午前 12 時から深夜 11 時 59 分までの時刻は PM であると言えます。 AM/PM という略語は、正確な時間を示すために使用されます。構文は、例では次の構文を使用します &miinus;strftime('%I:%M:%S%p')strft

PHPの日付関数の詳しい説明: 任意の日付の曜日を決定する方法 PHPの日付関数の詳しい説明: 任意の日付の曜日を決定する方法 Feb 29, 2024 am 10:09 AM

PHP の日付関数は、日付の計算と処理のための強力なツールであり、日付と時刻の情報を処理するための便利な関数が多数含まれています。その中で、任意の日付の曜日を決定することは一般的な要件であり、PHP では date() 関数と strtotime() 関数を使用して簡単に実現できます。以下では、PHP の日付関数を使用して任意の日付の曜日を決定する方法と、具体的なコード例を詳しく紹介します。まず、date() 関数を使用して現在の時刻の曜日を取得できます。その形式は 0 (日曜日) です。

PHP言語開発における日付フォーマットエラーにどう対処すればよいでしょうか? PHP言語開発における日付フォーマットエラーにどう対処すればよいでしょうか? Jun 09, 2023 pm 06:40 PM

PHP 言語開発では、日付の書式設定エラーがよくある問題です。正しい日付形式は、コードの読みやすさ、保守性、正確さを決定するため、プログラマにとって非常に重要です。この記事では、日付の形式エラーに対処するためのヒントをいくつか紹介します。日付形式について理解する 日付形式エラーに対処する前に、まず日付形式を理解する必要があります。日付形式は、特定の日付と時刻の形式を表すために使用されるさまざまな文字と記号の文字列です。 PHP では、一般的な日付形式には次のものがあります。 Y: 4 桁の年 (20 など)

Java で DateFormat 関数を使用して日付の書式設定を行う方法 Java で DateFormat 関数を使用して日付の書式設定を行う方法 Jun 26, 2023 pm 05:01 PM

Java は人気のあるプログラミング言語であり、日付と時刻を操作するための強力なツールが多数含まれています。最も一般的に使用されるツールの 1 つは、日付データを特定の文字列形式にフォーマットできる DateFormat 関数です。この記事では、Java で DateFormat 関数を使用して日付の書式設定を行う方法を紹介します。 Date クラスと DateFormat クラスをインポートする DateFormat 関数の使用を開始する前に、Java に Date クラスと DateFormat クラスをインポートする必要があります。

日付の書式設定に Python 正規表現を使用する方法 日付の書式設定に Python 正規表現を使用する方法 Jun 22, 2023 pm 08:25 PM

Python 正規表現は、文字列の一致、置換、抽出などの操作を実行できる非常に強力なテキスト処理ツールです。実際の開発では、「2022/10/01」を「2022年10月01日」の形式に変換するなど、日付の書式設定が必要になることがよくあります。この記事では、日付の書式設定に Python 正規表現を使用する方法を紹介します。 1. Python 正規表現の概要 Python 正規表現は、特定の文字列に一致する一連の文字を記述する特殊な文字列パターンです。

PHP 時間処理スキル: 時差と日付のフォーマットをすばやく計算する PHP 時間処理スキル: 時差と日付のフォーマットをすばやく計算する Mar 01, 2024 am 08:54 AM

PHP 時間処理のヒント: 時差と日付のフォーマットを素早く計算する インターネットの急速な発展に伴い、時間処理は Web 開発における一般的なタスクの 1 つになりました。 PHP では、時差の計算、日付のフォーマット、その他の操作など、時間処理は比較的一般的な要件です。この記事では、時差の迅速な計算や日付の書式設定など、PHP の時間処理テクニックをいくつか紹介し、いくつかの具体的なコード例を示します。時差の計算 多くのアプリケーション シナリオでは、2 つの時点間の時差を計算するなど、2 つの時点間の時差を計算する必要があります。

Java 日付フォーマット例外 (DateTimeParseException) の解決策 Java 日付フォーマット例外 (DateTimeParseException) の解決策 Aug 19, 2023 pm 03:36 PM

Java 日付書式設定例外 (DateTimeParseException) を解決するソリューションの概要: Java では、日付書式設定は一般的なタスクです。 SimpleDateFormat クラスまたは Java 8 で利用可能な新しい日時 API (DateTimeFormatter など) を使用して、日付と時刻を指定された形式に変換できます。ただし、日付を書式設定するときに、DateTimePars が発生する場合があります。

PHP 日付プログラミング ガイド: PHP を使用して日付の曜日を決定する方法を説明します。 PHP 日付プログラミング ガイド: PHP を使用して日付の曜日を決定する方法を説明します。 Mar 19, 2024 pm 06:09 PM

PHP 日付プログラミング ガイド: PHP を使用して特定の日付の曜日を決定する方法を説明します。PHP プログラミングでは、日付と時刻に関連した問題に対処する必要があることがよくあります。一般的なニーズの 1 つは、日付を決定することです。特定の日付の週。 PHP には、この機能を簡単に実装できる豊富な日付と時刻の処理関数が用意されています。この記事では、PHPで特定の日付の曜日を判断する方法と具体的なコード例を詳しく紹介します。 1. date() 関数を使用して曜日を取得する PHP の date() 関数は、書式設定に使用できます。

See all articles