web-dev-qa-db-ja.com

NOW()関数in PHP

MySQL関数NOW()と同じフォーマットで日付と時刻を返すPHP関数はありますか?

私はdate()を使ってそれをする方法を知っています、しかし、私はこれだけのための機能があるかどうか尋ねています。

例えばを返すために:

2009-12-01 00:00:00
435
MoeAmine

他にはありません:

date("Y-m-d H:i:s");
910
troelskn
date('Y-m-d H:i:s')

詳細はこちらをご覧ください。 http://pl.php.net/manual/en/function.date.php

129
hsz

PHP version> = 5.4 DateTimeの場合 これを行うことができます -

echo (new \DateTime())->format('Y-m-d H:i:s');

はたらくそれを見なさい

104
vascowhite

この機能を使う:

function getDatetimeNow() {
    $tz_object = new DateTimeZone('Brazil/East');
    //date_default_timezone_set('Brazil/East');

    $datetime = new DateTime();
    $datetime->setTimezone($tz_object);
    return $datetime->format('Y\-m\-d\ h:i:s');
}
32
user1786647

これを試して:

date("Y-m-d H:i:s");
24
streetparade

私は同じ答えを探していました、そして私は _ php _ 5.3以降のためにこの解決策を思いつきました:

$dtz = new DateTimeZone("Europe/Madrid"); //Your timezone
$now = new DateTime(date("Y-m-d"), $dtz);
echo $now->format("Y-m-d H:i:s");
15
santi

MySQL関数NOW()は現在のタイムスタンプを返します。私がPHPに見つけた唯一の方法は、次のコードを使うことです。

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

strftime :を使用してください。

strftime("%F %T");
  • %F%Y-%m-%dと同じです。

  • %T%H:%M:%Sと同じです。

これが デモ ideoneです。

14
user669677

私が使いやすいと思うもう一つの答え:

echo date('c');

// 2015-07-27T00:00:00+02:00

これは、ISO 8601日付(PHP 5に追加)MySQLが使用する日付です

編集

MySQL 5.7では、デフォルトで日時のタイムゾーンが許可されていません。 SQL_MODE=ALLOW_INVALID_DATESでエラーを無効にできます。詳細については、こちらの回答をご覧ください:https://stackoverflow.com/a/35944059/2103434しかし、それはまた、データベースに保存するときにタイムゾーンが失われることを意味します!

デフォルトでは、MySQLはシステムのタイムゾーンを使用し、PHPが同じタイムゾーンを使用している限り大丈夫です。私の場合、CET/UTC + 2。

つまり、2015-07-27T00:00:00+02:00をデータベースに挿入すると、2015-07-27T00:00:00のみが格納されます(ただし、これは正しい現地時間です!)。

時間をPHPに戻すと、

$importedDate = new \DateTime('2015-07-27T00:00:00')

デフォルトであるため、+02:00タイムゾーンであると自動的に想定します。これを印刷すると、再び正しくなります。

echo $importedDate->format('c');
// 2015-07-27T00:00:00+02:00

安全のために、常にサーバーでUTCを使用し、MySQLとPHPで指定し、日付を表示するときにユーザーのロケールにのみ変換します。

date_default_timezone_set('UTC');
$importedDate = new \DateTime('2015-07-27T00:00:00+02:00');
echo $importedDate->format('c');
// 2015-07-27T00:00:00+02:00

$importedDate->setTimezone(new \DateTimeZone("America/New_York"));
echo $importedDate->format('c');
// 2015-07-26T18:00:00-04:00
14
Richard87

または DateTime定数 :を使用することもできます。

echo date(DateTime::W3C); // 2005-08-15T15:52:01+00:00

これがそれらのリストです:

ATOM = "Y-m-d\TH:i:sP" ;               // -> 2005-08-15T15:52:01+00:00
COOKIE = "l, d-M-Y H:i:s T" ;          // -> Monday, 15-Aug-2005 15:52:01 UTC
ISO8601 = "Y-m-d\TH:i:sO" ;            // -> 2005-08-15T15:52:01+0000
RFC822 = "D, d M y H:i:s O" ;          // -> Mon, 15 Aug 05 15:52:01 +0000
RFC850 = "l, d-M-y H:i:s T" ;          // -> Monday, 15-Aug-05 15:52:01 UTC
RFC1036 = "D, d M y H:i:s O" ;         // -> Mon, 15 Aug 05 15:52:01 +0000
RFC1123 = "D, d M Y H:i:s O" ;         // -> Mon, 15 Aug 2005 15:52:01 +0000
RFC2822 = "D, d M Y H:i:s O" ;         // -> Mon, 15 Aug 2005 15:52:01 +0000
RFC3339 = "Y-m-d\TH:i:sP" ;            // -> 2005-08-15T15:52:01+00:00 ( == ATOM)
RFC3339_EXTENDED = "Y-m-d\TH:i:s.vP" ; // -> 2005-08-15T15:52:01.000+00:00
RSS = "D, d M Y H:i:s O" ;             // -> Mon, 15 Aug 2005 15:52:01 +0000
W3C = "Y-m-d\TH:i:sP" ;                // -> 2005-08-15T15:52:01+00:00

デバッグにはもっと短いほうがいいです( 3v4l.org ):

echo date('ymd\THisP'); // 180614T120708+02:00
10
CPHPython

私はuser1786647によって投稿された解決策が好きです、私はタイムゾーンを関数の引数に変更し、返された日付スタンプに使用するためにUnix時間または日時文字列を渡すためのオプションのサポートを追加しました。

PHP 5.3より前のバージョンを実行しているユーザーのための "setTimestamp"の代替も含まれます。

function DateStamp($strDateTime = null, $strTimeZone = "Europe/London") {
    $objTimeZone = new DateTimeZone($strTimeZone);

    $objDateTime = new DateTime();
    $objDateTime->setTimezone($objTimeZone);

    if (!empty($strDateTime)) {
        $fltUnixTime = (is_string($strDateTime)) ? strtotime($strDateTime) : $strDateTime;

        if (method_exists($objDateTime, "setTimestamp")) {
            $objDateTime->setTimestamp($fltUnixTime);
        } 
        else {
            $arrDate = getdate($fltUnixTime);
            $objDateTime->setDate($arrDate['year'], $arrDate['mon'], $arrDate['mday']);
            $objDateTime->setTime($arrDate['hours'], $arrDate['minutes'], $arrDate['seconds']);
        }
    }
    return $objDateTime->format("Y-m-d H:i:s");
}
5
Seth

あなたはパラメータとして正しいフォーマットでphp date関数を使うことができます、

echo date("Y-m-d H:i:s");
5
Som

組み込みのPHP now()関数はありませんが、date()を使用して実行できます。

function now() {
    return date('Y-m-d H:i:s');
}

タイムゾーンを変更する必要がある場合は、date_default_timezone_set()を使用できます。

それ以外の場合は、 Carbon -DateTimeの単純なPHP AP​​I拡張を使用できます。

0
RAZIUL

PHPに相当するものはtime()http://php.net/manual/en/function.time.php です。

0
Marco Marsala