次のどちらもokです。
$carbon_obj = new Carbon('2019-03-11');
$carbon_obj = new Carbon('2019/03/11');
$carbon_obj = \Carbon\Carbon::createFromTimestamp( $v->getMTime() );
dd(Carbon::now()->timestamp);
echo $dt->timezone->getName();
( Asia/Tokyo )( +00:00 )のような形で返ってきます。
echo Carbon\Carbon::now('Asia/Tokyo')->toDateTimeString()
echo $dt->year;
echo $dt->month;
echo $dt->day;
echo $dt->hour;
echo $dt->minute;
echo $dt->second;
2019
5
1
10
42
28
bladeテンプレートで Carbon を呼び出すには次のように記述します。
{{ \Carbon\Carbon::now() }}
{{ \Carbon\Carbon::now()->format("Y年m月d日") }} // 2019年03月05日
{{ \Carbon\Carbon::now()->format("Y年n月j日") }} // 2019年3月5日
{{ \Carbon\Carbon::now()->format("Y年m月d日 H:i:s") }} // 2019年03月05日 12:30:59
{{ \Carbon\Carbon::now()->format("Y年n月j日 H:i") }} // 2019年3月5日 12:30
{{ \Carbon\Carbon::now()->format("Ymd_His_v") }} // ( v はミリ秒です )20190305_123059_699
format メソッドの引数は PHP の date と同じです。
http://php.net/manual/ja/function.date.php
https://carbon.nesbot.com/docs/
$dt = new \Carbon\Carbon();
$dt->setTime(0, 0, 0)
dd($dt);
$dt->setDate($dt->year, $dt->month, 15);
$dt = new \Carbon\Carbon('2019-05-31');
dump( $dt->copy()->addMonth(1) );
dump( $dt->copy()->addMonthNoOverflow(1) );
↓ 結果
date: 2019-07-01 00:00:00.0 Asia/Tokyo (+09:00)
date: 2019-06-30 00:00:00.0 Asia/Tokyo (+09:00)
となります。addMonth() メソッドでは 6月31日がないので、7月1日になるのです。
安全のため addMonth () を 使うのを今すぐやめて addMonthNoOverflow() を使用しましょう
同じく
安全のため addYear () を 使うのを今すぐやめて addYearNoOverflow() を使用しましょう
addMonthNoOverflow は addMonthsNoOverflow を呼び出しているので、ほぼラッパーみたいな感じですが、デフォルトで引数1がセットされるので、1ヶ月だけ追加する場合はaddMonthNoOverflow() だけでもokです。
public function addMonthsNoOverflow($value)
public function addMonthNoOverflow($value = 1)
// 日付の加算(addition)
$dt->addDay();
$dt->addWeek();
$dt->addMonthNoOverflow();
$dt->addYearNoOverflow();
$dt->addHour();
$dt->addMinute();
$dt->addSecond();
// 日付の減算(subtraction)
$dt->subDay();
$dt->subWeek();
$dt->subMonthNoOverflow();
$dt->subYearNoOverflow();
$dt->subHour();
$dt->subMinute();
$dt->subSecond();
// 昨日
$dt->yesterday();
// 月初
$dt->startOfMonth();
// 月末 の(00:00:00)
$dt-> lastOfMonth();
// 月末 の(23:59:59)
$dt->endOfMonth();
// その日の 00:00:00
$dt->startOfDay();
// その日の 23:59:59.999999
$dt->endOfDay();
// parseによる指定(来月末)
$dt->parse('last day of next month');
setlocale(LC_TIME,'ja_JP.utf8');
echo $dt->formatLocalized('%Y/%m/%d(%a)');
echo $dt->formatLocalized('%Y/%m/%d(%a) %H:%M:%S')
出力例
2020/08/28(金)
2020/08/28(金) 15:41:45
こちら https://qiita.com/chiyoyo/items/da32649b0e04957856c1
の DatetimeUtility.php を使わせてもらいましょう
date_default_timezone_set('Asia/Tokyo');
require_once('DatetimeUtility.php');
$dt = Carbon::parse('2019-05-01');
echo DatetimeUtility::date('JK年n月j日 H:i:s', $dt->timestamp)."\n";
echo DatetimeUtility::date('Jk年n月j日 H:i:s', $dt->timestamp)."\n";
$dt->subSecond(1);
echo DatetimeUtility::date('JK年n月j日 H:i:s', $dt->timestamp)."\n";
echo DatetimeUtility::date('Jk年n月j日 H:i:s', $dt->timestamp)."\n";
令和元年5月1日 00:00:00
令和1年5月1日 00:00:00
平成31年4月30日 23:59:59
平成31年4月30日 23:59:59
$dt = new Carbon('2000-01-01');
echo $dt->age . '才です';
テストや障害の発生確認などの時に有用です。
Carbon::setTestNow(new Carbon('2019-11-22 11:59:59'));