PHPで現在の日付と時刻を取得するにはどうすればよいですか?

2009年01月23日に質問されました。  ·  閲覧回数 2.5M回  ·  ソース

Mike picture
2009年01月23日

現在の日付/時刻を返すことができるPHP関数はどれですか?

回答

NJ. picture
2009年01月23日
646

時間はサーバーの時間によって決まります。 これを回避する簡単な方法は、 date()またはtime()関数が呼び出される前に、 date() date_default_timezone_setを使用してタイムゾーンを手動で設定することです。

私はオーストラリアのメルボルンにいるので、次のようなものがあります。

date_default_timezone_set('Australia/Melbourne');

または別の例はLA- USです:

date_default_timezone_set('America/Los_Angeles');

サーバーが現在どのタイムゾーンにあるかを確認することもできます。

date_default_timezone_get();

だから次のようなもの:

$timezone = date_default_timezone_get();
echo "The current server timezone is: " . $timezone;

したがって、あなたの質問に対する簡単な答えは次のようになります。

// Change the line below to your timezone!
date_default_timezone_set('Australia/Melbourne');
$date = date('m/d/Y h:i:s a', time());

その後、すべての時間は、設定したタイムゾーンになります:)

Shadrack B. Orina picture
2012年03月06日
546
// Simply:
$date = date('Y-m-d H:i:s');

// Or:
$date = date('Y/m/d H:i:s');

// This would return the date in the following formats respectively:
$date = '2012-03-06 17:33:07';
// Or
$date = '2012/03/06 17:33:07';

/** 
 * This time is based on the default server time zone.
 * If you want the date in a different time zone,
 * say if you come from Nairobi, Kenya like I do, you can set
 * the time zone to Nairobi as shown below.
 */

date_default_timezone_set('Africa/Nairobi');

// Then call the date functions
$date = date('Y-m-d H:i:s');
// Or
$date = date('Y/m/d H:i:s');

// date_default_timezone_set() function is however
// supported by PHP version 5.1.0 or above.

タイムゾーンのリファレンスについては、サポートされているタイムゾーンのリストを参照してください。

Mahdi picture
2013年05月29日
209

PHP 5.2.0DateTime()クラスを使用できます。

use \Datetime;

$now = new DateTime();
echo $now->format('Y-m-d H:i:s');    // MySQL datetime format
echo $now->getTimestamp();           // Unix Timestamp -- Since PHP 5.3

そして、 timezoneを指定するには:

$now = new DateTime(null, new DateTimeZone('America/New_York'));
$now->setTimezone(new DateTimeZone('Europe/London'));    // Another way
echo $now->getTimezone();
ShapCyber picture
2013年08月30日
102

参照:ここにリンクがあります

これは、夏時間のために、タイムスタンプに1日または1か月の秒数を単純に加算または減算するよりも信頼性が高くなります。

PHPコード

// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone

$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, n, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
$today = date("H:i:s");                         // 17:16:18
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)
Rob Hruska picture
2009年01月23日
70

PHPのtime()は、現在のUnixタイムスタンプを返します。 これにより、 date()関数を使用して必要に応じてフォーマットできます。

$date = date('Format String', time());

パオロがコメントで述べたように、2番目の議論は冗長です。 次のスニペットは、上記のスニペットと同等です。

$date = date('Format String');
Gumbo picture
2009年01月23日
67

$_SERVER['REQUEST_TIME']変数(PHP 5.1.0以降で使用可能)またはtime()関数を使用して、現在のUnixタイムスタンプを取得できます。

Grizzly Peak Software picture
2009年01月23日
58

$_SERVER['REQUEST_TIME']変数またはtime()関数の両方を使用できます。 これらは両方ともUnixタイムスタンプを返します。

ほとんどの場合、これら2つのソリューションはまったく同じUnixタイムスタンプを生成します。 これらの違いは、 $_SERVER['REQUEST_TIME']が最新のサーバー要求のタイムスタンプを返し、 time()が現在の時刻を返すことです。 これにより、アプリケーションによって精度にわずかな違いが生じる可能性がありますが、ほとんどの場合、これらのソリューションの両方で十分です。

上記のサンプルコードに基づいて、 Unixタイムスタンプを取得したらこの情報をフォーマットする必要があります。 フォーマットされていないUnix時間は次のようになります: 1232659628

したがって、機能するものを取得するために、 date()関数を使用してフォーマットすることができます。

date()関数を使用する方法の良いリファレンスは、 PHPマニュアルにあります。

例として、次のコードは次のような日付を返します。 01/22/2009 04:35:00 pm

echo date("m/d/Y h:i:s a", time());
Subodh Ghulaxe picture
2015年04月17日
45

PHPの日付関数はこの仕事をすることができます。

日付()

説明:

string date(string $format [, int $timestamp = time()])

指定された整数のタイムスタンプ、またはタイムスタンプが指定されていない場合は現在の時刻を使用して、指定されたフォーマット文字列に従ってフォーマットされた文字列を返します。

例:

$today = date("F j, Y, g:i a");               // March 10, 2001, 5:16 pm
$today = date("m.d.y");                       // 03.10.01
$today = date("j, n, Y");                     // 10, 3, 2001
$today = date("Ymd");                         // 20010310
$today = date('h-i-s, j-m-y, it is w Day');   // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day.
$today = date("D M j G:i:s T Y");             // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');   // 17:03:18 m is month
$today = date("H:i:s");                       // 17:16:18
$today = date("Y-m-d H:i:s");                 // 2001-03-10 17:16:18 (the MySQL DATETIME format)
Supun Praneeth picture
2019年06月16日
30

新しいPHPプログラマーにとって、現在の日付と時刻を取得する方法がたくさんある理由と、プロジェクトで使用する方法がわからない場合があります。

1. dateメソッド(PHP 4、PHP 5、PHP 7)

これは、phpで日付と時刻を取得するための非常に一般的で非常に簡単な方法です。

// set the default timezone to use. Available since PHP 5.1
date_default_timezone_set('UTC');


// Prints something like: Monday
echo date("l");

// Prints something like: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');

// Prints: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

/* use the constants in the format parameter */
// prints something like: Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);

// prints something like: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));

あなたはここでそれについてもっと学ぶことができ

2. DateTimeクラス(PHP 5> = 5.2.0、PHP 7)

PHPをOOPで使用する場合、これは日付と時刻を取得するための最良の方法です。

<?php
// Specified date/time in your computer's time zone.
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Specified date/time in the specified time zone.
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Current date/time in your computer's time zone.
$date = new DateTime();
echo $date->format('Y-m-d H:i:sP') . "\n";

// Current date/time in the specified time zone.
$date = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Using a UNIX timestamp.  Notice the result is in the UTC time zone.
$date = new DateTime('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Non-existent values roll over.
$date = new DateTime('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

あなたはここでそれについてもっと学ぶことができ

3.放射性炭素年代測定パッケージ

ComposerLaravelSymfony、またはその他のフレームワークを使用している場合、これが日付と時刻を取得するための最良の方法です。 また、このパッケージはphpのDateTimeクラスを拡張するため、Datetimeクラスのすべてのメソッドを使用します。 これはlaravelのような組み込みのフレームワークなので、個別にインストールする必要はありません。

printf("Right now is %s", Carbon::now()->toDateTimeString());
printf("Right now in Vancouver is %s", Carbon::now('America/Vancouver')); // automatically converted to string
$tomorrow = Carbon::now()->addDay();
$lastWeek = Carbon::now()->subWeek();

// Carbon embed 823 languages:
echo $tomorrow->locale('fr')->isoFormat('dddd, MMMM Do YYYY, h:mm');
echo $tomorrow->locale('ar')->isoFormat('dddd, MMMM Do YYYY, h:mm');

$officialDate = Carbon::now()->toRfc2822String();

$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age;

$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'Europe/London');

$internetWillBlowUpOn = Carbon::create(2038, 01, 19, 3, 14, 7, 'GMT');

if (Carbon::now()->isWeekend()) {
    echo 'Party!';
}
echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2 minutes ago'

あなたはここでそれについてもっと学ぶことができ

これがお役に立てば幸いです。日付と時刻を取得する他の方法をご存知の場合は、お気軽に回答を編集してください。

Kailas picture
2013年06月07日
27
 $date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
 echo $date->format('d-m-Y H:i:s');

更新

 //Also get am/pm in datetime:
 echo $date->format('d-m-Y H:i:s a'); // output 30-12-2013 10:16:15 am

日付形式の場合、 PHPのdate()関数が役立ちます。