phpのtime()関数は、現在のサーバの番号を出力します。 今日は昨日00時01分に番号を取得したいと思います。時間内に00:01の番号を見つける方法()楽しいPHP?
例: 時刻():現在のサーバーの番号を出力します。 time() - (1 * 24 * 60 * 60):昨日の番号を出力します。
しかし、今日の午前と昨日の00:01にこれらの数字が必要です。
どのようにですか?
phpのtime()関数は、現在のサーバの番号を出力します。 今日は昨日00時01分に番号を取得したいと思います。時間内に00:01の番号を見つける方法()楽しいPHP?
例: 時刻():現在のサーバーの番号を出力します。 time() - (1 * 24 * 60 * 60):昨日の番号を出力します。
しかし、今日の午前と昨日の00:01にこれらの数字が必要です。
どのようにですか?
これを試してください:
Echo date("Y-m-d ") . "00:01\n";
Echo date("Y-m-d ", strtotime("yesterday")) . "00:01";
Strtotimeは単純な文字列を読み取り、プラスまたはマイナスの時間に変換できます。
https://3v4l.org/bLOq3
@Andreasは良い方法がありますが、追加の文字列'00:01' は、適切ではないOPは、タイムスタンプ、すなわち_integer表現を望んでいるようになります。また、strtotime()
は複数の単語を理解します。まず、設定されたタイムゾーン:秒数を返しますtime()
echo date('Y-m-d H:i:s', strtotime('yesterday midnight') + 1); // 2017-07-28 00:00:01
echo date('Y-m-d H:i:s', strtotime('today midnight') + 1); // 2017-07-29 00:00:01
opにUNIX値が必要なのはわかりません。しかし、そうであれば、私の答えは簡単に修正することができます。また、私はstrtotimeが単一の言葉しか理解しないと言っていませんでした。 – Andreas
PHP機能:これは、と比較して、これらの2つのタイムスタンプ
strtotime('yesterday midnight')
strtotime('yesterday midnight') + 1
このプリントフォーマットされた日付文字列を取得します
date_default_timezone_set('UTC');
1970年1月1日00:00:00 UTC(別名Unix Epoch)以降に渡されました。サーバーの時計が正しい時間を示す限り、スクリプトが実行されているサーバーやサーバーのタイムゾーン、またはPHPが使用するデフォルトのタイムゾーンに関係なく、time()
関数は同じ値を返します。
PHPは多くを提供しますfunctions to handle date & time。それらを見てから、それらのほとんどを忘れてください。あなたはそれらを必要としません。 date_
で始まる名前は、DateTime
クラス(およびその友人)のメソッドの単なるエイリアスです。他のものは古いものであり、複数のタイムゾーンを処理しません。
のみいくつかの日付/時刻関数は、あなたが覚えておく必要がありますあります:time()
(タイムスタンプを取得するには)、date()
をDateTime
オブジェクトを作成する関数によって認識入力フォーマットについて学ぶために、日付とstrtotime()
をフォーマットする方法を学びます。
今は00:01と昨日の数字を取得したいと思います。
00:01
は深夜1分後です。それは00:01
今日だった時に瞬間をカプセル化するDateTime
オブジェクトを作成するのは簡単です:
$today = new DateTime('00:01');
DateTime::__construct()
の最初の引数は作成するstring representation of the dateです。日付が完了していない場合、欠落している日付コンポーネントは今日の日付で初期化され、欠落している時間コンポーネントは0
で初期化されます。
DateTime
オブジェクトを「昨日00:01」に作成する方法はいくつかあります。最も簡単な1はちょうどコンストラクタに渡された文字列でそれを表明することにある。
$yesterday = new DateTime('yesterday 00:01');
別のオプションは、それから$today
と同じとsubtract一日、それを作成することです:
$yesterday = new DateTime('00:01');
$yesterday->modify("-1 day");
を見てみましょう我々は何を得る:
echo('Today : '.$today->format('Y-m-d H:i:s e'));
echo('Yesterday: '.$yesterday->format('Y-m-d H:i:s e'));
それは出力します。
Today : 2017-07-29 00:01:00 Europe/Bucharest
Yesterday: 2017-07-28 00:01:00 Europe/Bucharest
おそらく異なるタイムゾーンを表示します。これは、最初の引数として渡された文字列にタイムゾーンが含まれておらず、DateTime::__construct()
に2番目の引数を渡していないためです。この場合、PHPはデフォルトのタイムゾーンを使用します(php.ini
またはdate_default_timezone_set()
関数を使用して設定されています)。
DateTime::__construct()
に2番目の引数としてDateTimeZone
オブジェクトを渡すまたはスクリプトの起動時にデフォルトのタイムゾーンを設定する機能date_default_timezone_set()
を使用するか、コードがすべてのサーバーで同じように動作することを確認します。
あなたの質問は明確ではありません – Ritz
彼は '2017-07-29 00:01'と' 2017-07-28 00:01'を出力したいと思います。 – Andreas
はあなたの質問とあなたのコードを説明してくれます。 –