web-dev-qa-db-ja.com

PHPで現在の日時を取得する方法

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

753
Mike

時間はあなたのサーバーの時間によって行くでしょう。これに対する簡単な回避策は、 date() または time() 関数が呼び出される前に 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());

それからすべての時間はあなたがちょうど設定したタイムゾーンになるでしょう:)

564
NJ.
// 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.

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

435

PHP 5.2.0から、 _ oop _ および DateTime() を使用しても実行できます(もちろんOOPを使用する場合)

$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();
171
Mahdi

参照:これは リンクです

これは、夏時間のため、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)
81
ShapCyber

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

58
Gumbo

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

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

Paoloがコメントで述べたように、2番目の議論は冗長です。次のコードは上記のコードと同じです。

$date = date('Format String');
58
Rob Hruska

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

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

上記の例のコードに基づいて、 Unixタイムスタンプ を取得したら、この情報をフォーマットします。フォーマットされていない Unixの時間 のように見える:1232659628

それでうまくいく何かを得るために、あなたはそれをフォーマットするためにdate()関数を使うことができます。

date()関数を使用するための良い参考文献は PHP Manual にあります。

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

echo date("m/d/Y h:i:s a", time());
45

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

date()

説明:

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)
43
Subodh Ghulaxe
 $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()関数が便利です。

23
Kailas

つかいます:

$date = date('m/d/Y h:i:s a', time());

できます。

19
Mike
echo date("d-m-Y H:i:sa");

このコードは、コードが実行されているサーバーの日付と時刻を取得します。

16

このフォーマットも使えます:

$date = date("d-m-Y");

または

$date = date("Y-m-d H:i:s");
14
Kalaivani M

PHPを使用して現在の日付/時刻を取得する方法(NOW)によると、現在の日付を取得する方法は2つあります。現在の日時を(現在)PHPで取得するには、任意のPHPバージョンでdateクラスを使用するか、PHP> = 5.2でdatetimeクラスを使用できます。

さまざまな日付形式の表現がここにあります。

日付を使った例

この式はY-m-d H:i:sの形式でNOWを返します。

<?php
    echo date('Y-m-d H:i:s');
?>

日時クラスの使用例

この式はY-m-d H:i:sの形式でNOWを返します。

<?php
    $dt = new DateTime();
    echo $dt->format('Y-m-d H:i:s');
?>
13
David
<?php
echo "<b>".date('l\, F jS\, Y ')."</b>";
?>

こんなプリント 

2012年12月9日日曜日  

12
AMB

そのとても単純な

echo $ date = date( 'Y-m-d H:i:s');

12
Juned Ansari
<?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)
?>
11
Mr. HK
date_default_timezone_set('Europe/Warsaw');
echo("<p class='time'>".date('H:i:s')."</p>");
echo("<p class='date'>".date('d/m/Y')."</p>");
9
Dariusz J
date(format, timestamp)

date関数は、与えられた整数のタイムスタンプを使って与えられたフォーマット文字列に従ってフォーマットされた文字列、またはタイムスタンプが与えられていない場合は現在時刻を返します。つまり、timestampはオプションで、デフォルトはtime()の値になります。

そしてパラメータは -

format - 必須です。タイムスタンプの形式を指定します

timestamp - (オプション)タイムスタンプを指定します。デフォルトは現在の日時です

簡単な日付を取得する方法

date()関数の必須のformatパラメータは、date (or time)のフォーマット方法を指定します。

これは、日付によく使われるいくつかの文字です。

  1. d - 月の日を表します(01から31)
  2. m - 月を表します(01から12)
  3. Y - 年を表します(4桁)
  4. l(小文字の 'L') - 曜日を表します

"/", ".", or "-"のような他の文字も文字間に挿入して追加のフォーマットを追加することができます。

以下の例は、今日の日付を3つの異なる方法でフォーマットします。

<?php
    echo "Today is " . date("Y/m/d") . "<br>";
    echo "Today is " . date("Y.m.d") . "<br>";
    echo "Today is " . date("Y-m-d") . "<br>";
    echo "Today is " . date("l");
?>

便利なリンク

9
Joomler

このコードを使うことができます:

<?php
    $currentDateTime = date('Y-m-d H:i:s');
    echo $currentDateTime;
?>
9
RichestSoft

あなたが異なるタイムスケールが欲しいならば、使ってください:

$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));
$nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);

date_default_timezone_set("Asia/Calcutta");
echo date("Y/m/d H:i:s");
9
Jaymin

日付フォーマットも異なります。

echo date("d/m/Y H:i:sa"); // 13/04/2017 19:38:15pm
9
hector teran

タイムゾーンを設定します。

date_default_timezone_set('Asia/Calcutta');

それから日付関数を呼び出します

$date = date('Y-m-d H:i:s');
9
kkarayat

PHPで現在時刻を取得する最も簡単な方法はこのようなものであることがわかりました。

//Prints out something like 10:00am Just be sure to set your timezone correctly.
date_default_timezone_set("America/Chicago");
$TIME = date('G:ia'); 
7
Bullyen

もう1つの簡単な方法は、現在の日付と時刻のタイムスタンプを取得することです。 mktime() functionを使用します。

$now = mktime(); // Return timestamp of the current time

その後、これを別の日付形式に変換できます。

//// Prints something like: Thursday 26th of January 2017 01:12:36 PM
echo date('l jS \of F Y h:i:s A',$now);

他の日付フォーマットはここにあります: http://php.net/manual/en/function.date.php

7
adespotos

これは、よく使われる文字です。

  1. h - 先行ゼロ付きの1時間の12時間形式(01から12)
  2. i - 先行ゼロ付きの分(00〜59)
  3. s - 先行ゼロ付きの秒(00〜59)
  4. a - 小文字の前の子午線と後の子午線(午前または午後)

タイムゾーンを取得

<?php
    date_default_timezone_set("America/New_York");
    echo "The time is " . date("h:i:sa");
?>

これをチェックしてください。{(optional)

<?php
    $d = mktime(11, 14, 54, 8, 12, 2014);
    echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>

日付の場合

<?php
    echo "Today is " . date("Y/m/d") . ;
    echo "Today is " . date("Y.m.d") . ;
    echo "Today is " . date("Y-m-d") . ;
    echo "Today is " . date("l");
?>

これは、日付によく使われるいくつかの文字です。

  1. d - 月の日を表します(01から31)
  2. m - 月を表します(01から12)
  3. Y - 年を表します(4桁)
  4. l(小文字の 'L') - 曜日を表します

ソース-W3-学校

5
Raheel Khan

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

1。 date method(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));

詳しくは here をご覧ください。

2。 DateTime class(PHP 5> = 5.2.0、PHP 7)

oOPでPHPを使用したい場合、これが日付と時刻を取得する最良の方法です。

<?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";
?>

詳しくは here をご覧ください。

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'

詳しくは here をご覧ください。

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

5
Supun Praneeth

もしあなたがバングラデシュ人であり、また Dhaka の時間を取得したい場合は、以下を使用してください。

$date = new DateTime();
$date->setTimeZone(new DateTimeZone("Asia/Dhaka"));
$get_datetime = $date->format('d.m.Y H:i:s');
5
A.A Noman
// 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 2016 03:12:46 PM
echo date('l jS \of F Y h:i:s A');

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

/* 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: 2016-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
5
Elyor

12-3-2016 のように日付を取得する場合は、毎日、月、年の値を区切り、次のコードをコピーして貼り付けます。

$day = date("d");
$month = date("m");
$year = date("y");
print "date" . $day . "-" . $month . "-" . $year;
4
Pir Fahim Shah

PHPは現在の時刻を秒数で返します。あなたはあなたが望むどんなフォーマットでもそれらをフォーマットする必要があります。

<?php
    // time() returns current time in seconds
    $in_seconds = time();

    // strftime - Format a local time/date according to locale settings
    echo strftime("%m/%d/%y", $in_seconds);
?>

参照: http://php.net/manual/en/function.strftime.php

3
Gnanasekar S

date関数を使用してデフォルトのタイムゾーンを設定することができます。

<?php
    date_default_timezone_set("Asia/Kolkata");
    echo "Today is " . date("Y/m/d") . "<br>";
    echo "Today is " . date("Y.m.d") . "<br>";
    echo "Today is " . date("Y-m-d") . "<br>";
    echo "Today is " . date("l");
    echo "The time is " . date("h:i:sa");
?>
3

通常、このdate関数は誰にとっても便利です。 date( "Y/m/d");

しかし、時間関数はPHPバージョンまたはシステム日付のどちらかに依存するため、時間は少し異なります。

そのため、私たち自身のタイムゾーンを取得するには、おそらくこのように使用します。

$date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
echo $date->format('H:m:s');

この機能は24時間表示します。

3
Meena Arumugam

現在の時刻と日付を取得する最良の方法は、PHPの date関数 を使うことです。

$date = date('FORMAT'); // FORMAT E.g.: Y-m-d H:i:s

$current_date = date('Y-m-d H:i:s');

Unixタイムスタンプの場合:

$now_date = date('FORMAT', time()); // FORMAT Eg : Y-m-d H:i:s

サーバーのタイムゾーンを設定するには

date_default_timezone_set('Asia/Calcutta');

別のタイムゾーンリストは here です。

3
Arthi Rajgopal

とても簡単

date_default_timezone_set('Asia/Kolkata');
$date = date('m/d/Y H:i:s', time());
1
echo $today = date('y-m-d');

これは今日の日付を返します。

0
Ajay Katariya

Linuxサーバーの時刻とPHP time()のタイムゾーンの差

<?php
    putenv("TZ=Asia/Kabul");
    $t = time();
    echo date('d/m/Y H:i:sa', $t);
?>
0
Ahmad Shakib