今週の月曜日は次の方法で取得できます。
$monday = date_create()->modify('this Monday');
今月の1日も同じように簡単に取得したいと思います。どうすればそれを達成できますか?
動作するにはPHP 5.3が必要です(PHP 5.3で「初日」が導入されています)。それ以外の場合は、上記の例が唯一の方法です。
<?php
// First day of this month
$d = new DateTime('first day of this month');
echo $d->format('jS, F Y');
// First day of a specific month
$d = new DateTime('2010-01-19');
$d->modify('first day of this month');
echo $d->format('jS, F Y');
// alternatively...
echo date_create('2010-01-19')
->modify('first day of this month')
->format('jS, F Y');
PHP 5.4+では、次のことができます。
<?php
// First day of this month
echo (new DateTime('first day of this month'))->format('jS, F Y');
echo (new DateTime('2010-01-19'))
->modify('first day of this month')
->format('jS, F Y');
これを行うための簡潔な方法を好み、すでに数値に年と月がある場合は、date()
を使用できます。
<?php
echo date('Y-m-01'); // first day of this month
echo date("$year-$month-01"); // first day of a month chosen by you
これが私が使用するものです。
月の最初の日:
date('Y-m-01');
月の最終日:
date('Y-m-t');
これはあなたが必要とするすべてです:
$week_start = strtotime('last Sunday', time());
$week_end = strtotime('next Sunday', time());
$month_start = strtotime('first day of this month', time());
$month_end = strtotime('last day of this month', time());
$year_start = strtotime('first day of January', time());
$year_end = strtotime('last day of December', time());
echo date('D, M jS Y', $week_start).'<br/>';
echo date('D, M jS Y', $week_end).'<br/>';
echo date('D, M jS Y', $month_start).'<br/>';
echo date('D, M jS Y', $month_end).'<br/>';
echo date('D, M jS Y', $year_start).'<br/>';
echo date('D, M jS Y', $year_end).'<br/>';
現在、私はこのソリューションを使用しています:
$firstDay = new \DateTime('first day of this month');
$lastDay = new \DateTime('last day of this month');
私が出会った唯一の問題は、奇妙な時間が設定されているということです。検索インターフェイスに正しい範囲が必要だったので、これで終わりました:
$firstDay = new \DateTime('first day of this month 00:00:00');
$lastDay = new \DateTime('first day of next month 00:00:00');
私はこれを行うためにクレイジーな方法を使用し、このコマンドを使用しています
$firstDay=date('Y-m-d',strtotime("first day of this month"));
$lastDay=date('Y-m-d',strtotime("last day of this month"));
それで全部です
Php 5.2では、次を使用できます。
<? $d = date_create();
print date_create($d->format('Y-m-1'))->format('Y-m-d') ?>
Glyい(上記のメソッド呼び出しは使用しません)が動作します:
echo 'First day of the month: ' . date('m/d/y h:i a',(strtotime('this month',strtotime(date('m/01/y')))));
次のようにできます:
$firstday = date_create()->modify('first day January 2010');
これを毎日のcronジョブで使用して、特定の月の最初の日にアフィリエイトにメールを送信する必要があるかどうかを確認します。他の回答よりも数行多いですが、岩のようにしっかりしています。
//is this the first day of the month?
$date = date('Y-m-d');
$pieces = explode("-", $date);
$day = $pieces[2];
//if it's not the first day then stop
if($day != "01") {
echo "error - it's not the first of the month today";
exit;
}
dateメソッドを使用すると、結果を取得できるはずです。すなわち; date( 'N/D/l'、mktime(0、0、0、月、日、年));
例えば
echo date('N', mktime(0, 0, 0, 7, 1, 2017)); // will return 6
echo date('D', mktime(0, 0, 0, 7, 1, 2017)); // will return Sat
echo date('l', mktime(0, 0, 0, 7, 1, 2017)); // will return Saturday