回答:
時間はサーバーの時間によって決まります。これの簡単な回避策はdate_default_timezone_set
、date()
またはtime()
関数が呼び出される前にを使用してタイムゾーンを手動で設定することです。
私はオーストラリアのメルボルンにいるので、次のようなものがあります。
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());
次に、すべての時間は、設定したタイムゾーンになります:)
// 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.
タイムゾーンのリファレンスについては、サポートされているタイムゾーンのリストを参照してください。
PHPなので5.2.0
、次のDateTime()
クラスを使用できます。
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();
Datatime
名前空間の使用について。それが2013年のことで、PHPコードを何年も書いていないのか覚えていません。とにかく、あなたの提案は正しいようですので、もう一度感謝します。
参照:ここにリンクがあります
これは、夏時間のため、タイムスタンプに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)
PHPのtime()は、現在のUnixタイムスタンプを返します。これにより、date()関数を使用してニーズに合わせてフォーマットできます。
$date = date('Format String', time());
Paoloがコメントで述べたように、2番目の引数は冗長です。次のスニペットは、上記のものと同等です。
$date = date('Format String');
あなたはどちらかを使用することができ$_SERVER['REQUEST_TIME']
、変数(PHP 5.1.0以降で利用可能)、またはtime()
機能を、現在のUnixタイムスタンプを取得します。
time()
関数から返されるタイムスタンプはタイムゾーンに依存しないことに注意してください。(したがって、date_default_timezone_set("your-particular-timezone");
beforeを呼び出しても効果はありません。)
$_SERVER['REQUEST_TIME']
変数またはtime()
関数の両方を使用できます。これらは両方ともUnixタイムスタンプを返します。
ほとんどの場合、これら2つのソリューションはまったく同じUnixタイムスタンプを生成します。これらの違い$_SERVER['REQUEST_TIME']
は、最新のサーバー要求のタイムスタンプをtime()
返し、現在の時刻を返すことです。これにより、アプリケーションによっては精度にわずかな違いが生じる可能性がありますが、ほとんどの場合、これら両方のソリューションで十分です。
上記のサンプルコードに基づいて、Unix Timestampを取得したら、この情報をフォーマットする必要があります。未フォーマットのUnix時間は次のようになります。1232659628
そのため、date()
機能するものを取得するために、関数を使用してフォーマットできます。
date()
関数の使用方法についての適切なリファレンスは、PHPマニュアルにあります。
例として、次のコードは次のような日付を返します01/22/2009 04:35:00 pm
:
echo date("m/d/Y h:i:s a", time());
$_SERVER['REQUEST_TIME']
ますか?
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)
$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()関数が役立ちます。
とてもシンプル
echo $ date = date( 'Ymd H:i:s');
新しい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)
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";
?>
3.カーボンデートタイムパッケージ
Composer、Laravel、Symfonyなどのフレームワークを使用している場合、これは日付と時刻を取得するための最良の方法です。また、このパッケージは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'
これがお役に立てば幸いです。日付と時刻を取得する他の方法がわかっている場合は、回答を自由に編集してください。
使用する:
$date = date('m/d/Y h:i:s a', time());
できます。
echo date("d-m-Y H:i:sa");
このコードは、コードが実行されているサーバーの日付と時刻を取得します。
PHPを使用して現在の日時を取得する方法(NOW)の記事によると、現在の日付を取得する一般的な方法は2つあります。PHPで現在の日時(現在)を取得するにはdate
、任意のPHPバージョンでクラスを使用するかdatetime
、PHP> = 5.2でクラスを使用できます。
ここでは、さまざまな日付形式の式を使用できます。
この式は、NOWをフォーマットで返しますY-m-d H:i:s
。
<?php
echo date('Y-m-d H:i:s');
?>
この式は、NOWをフォーマットで返しますY-m-d H:i:s
。
<?php
$dt = new DateTime();
echo $dt->format('Y-m-d H:i:s');
?>
<?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)
?>
date(format, timestamp)
このdate
関数は、指定された整数タイムスタンプを使用して、またはタイムスタンプが指定されていない場合は現在の時刻を使用して、指定されたフォーマット文字列に従ってフォーマットされた文字列を返します。つまり、これtimestamp
はオプションであり、デフォルトでtime()の値になります。
そしてパラメータは-
フォーマット-必須。タイムスタンプの形式を指定します
timestamp-(オプション)タイムスタンプを指定します。デフォルトは現在の日時です
date()
関数の必須のformatパラメータは、をフォーマットする方法を指定しますdate (or time)
。
次に、日付に一般的に使用されるいくつかの文字を示します。
文字"/", ".", 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");
?>
別のタイムスケールが必要な場合は、以下を使用してください。
$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");
日付の形式も異なります。
echo date("d/m/Y H:i:sa"); // 13/04/2017 19:38:15pm
次のコードを使用できます。
<?php
$currentDateTime = date('Y-m-d H:i:s');
echo $currentDateTime;
?>
別の簡単な方法は、現在の日付と時刻のタイムスタンプを取得することです。mktime()関数を使用します。
$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
とてもシンプル
date_default_timezone_set('Asia/Kolkata');
$date = date('m/d/Y H:i:s', time());
// 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));
以下は、時間によく使用されるいくつかの文字です。
a-小文字のアンティ子午線とポスト子午線(午前または午後)
タイムゾーンを取得する
<?php
date_default_timezone_set("America/New_York");
echo "The time is " . date("h:i:sa");
?>
これをチェックしてください(オプション)
<?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");
?>
次に、日付に一般的に使用されるいくつかの文字を示します。
.
ではdate("Y/m/d") . ;
?
$date = date('m/d/Y h:i:s a', time());