質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

728閲覧

時刻の表示結果に違いが発生してしまう

toll_tree

総合スコア199

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2019/06/22 04:51

carbonのformatを使用し、表示させた際とdd()を使用し表示を行った際の結果が微妙に違ってしまいます。
以下は、該当のコードになります。

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Carbon\Carbon; use App\Reservation; class Reservecontroller extends Controller { // public function getCalendarDates($year, $month) { $date = Carbon::parse("$year-$month-1")->locale('ja_JP'); // dd($date); $last = $date->copy()->startOfWeek(); $count = $last->diffInDays($date->copy()->endOfMonth()->endOfWeek()) + 1; // dd($count,$date); for ($i = 0; $i < $count; $i++, $last->addDay()) { $dates[] = $last->copy(); } return $dates; } public function reserve_date() { $current_date = new Carbon(); $current_year = $current_date->year; $current_month = $current_date->month; $dates = $this->getCalendarDates($current_year,$current_month); $reservations = Reservation::get(['reservation_date']); $reservations_array = $reservations->toArray(); // var_dump($reservations_array); // dd(); foreach($reservations_array as $key=> $value ){ $reserved_date[] = Carbon::parse($value['reservation_date']); if($reserved_date[$key]->month == $current_month){ $current_reserved_date[] = $reserved_date[$key]; } } // foreach($current_reserved_date) // dd($current_reserved_date); // dd($dates[1]); dd($dates[0]->format('h:i:s')); if($current_reserved_date[0]->format('h:i') == $dates[0]->format('h:i')){ // dd($dates[0]->format('h:i')); echo __LINE__; dd(); }else{ echo __LINE__; } dd($dates[0]->format('h:i')); return view('reserve.calendar',compact('dates','current_date','current_reserved_date')); } }

reserve_dateメソッド内の「dd($dates[0]->format('h:i'));」ここの結果が「"12:00"」であるのに対し、
dd($date[0])とした際の結果は以下のように、時間の部分が「00:00:00」となっています。これらの違いは何故起こってしまうのでしょうか?

Carbon @1558796400 {#223 ▼ date: 2019-05-26 00:00:00.0 Asia/Tokyo (+09:00) }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/06/22 05:23

回答してますけど調べたことがほぼ書かれてないので丸投げです。 マニュアル読めば分かることです。逆に読んで分からなければずっと今回のような内容は理解できません。 プログラミング言語の仕様ですので。
guest

回答2

0

フォーマットって意味、分かってますか?

意味は調べればわかりますが、「指定の書式に変換すること」ですね。
では「指定の書式とは?」

引数で指定していますね。

format('h:i')

じゃあそれぞれの書式がどういう変換の意味を持つか?
これはプログラミング言語によって違います。

どこで見ればわかるか?

マニュアル読んでいけばわかります。

Carbonのマニュアル
からリンクが貼られているDateTimeのformatの機能を読んでください。
併せてそこからリンクされているdate()関数の「フォーマット」も読みましょう。

あとはミニマムプログラムを書いて試すだけです。

午後の時間帯に実行すれば明白です。

php

1echo date("h:i").PHP_EOL; 2echo date("H:i").PHP_EOL; 3 4//現在のデータに近づけたいならこっち 5$test = date("Ymd0000"); 6echo date("h:i",strtotime($test)).PHP_EOL; 7echo date("H:i",strtotime($test)).PHP_EOL; 8``` 9 10つまり「指定の書式にあわせて変換が行われた」だけであり、時間がずれたわけではありません。 11フォーマットについてもっと深く学びましょう。 12特に日付フォーマットは様々な表現方法があるので一通り把握しておく必要があります。 13場面によって表示形式をわける必要がありますからね。 14 15※まさか「時刻には24時間表記と12時間表記があってね」というところからの説明が必要ではないと信じたいところ

投稿2019/06/22 05:05

編集2019/06/22 05:27
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

dd($date[0])はCarbonの継承元のDataTimeクラスをVarDumperでダンプした時の値("Y-m-d H:i:s.u e (P)"相当)が、
dd($dates[0]->format('h:i'))は自身で設定した「h:i」の日付フォーマットで出力されています。
PHP マニュアル date

h 時。数字。12 時間単位。 i 分。先頭にゼロをつける。

投稿2019/06/22 11:15

aro10

総合スコア4106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/06/23 11:13 編集

質問者自身が「自身が設定した」とわかってるといいんですが
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問