ブラウザのロケールによって表示上だけ変わってるので開発側からはどうしようもない。
実際の値はyyyy-mm-ddだから困ることはない。
https://developer.mozilla.org/ja/docs/Web/HTML/Element/input/date
<input type="date">型で日付の書式がデフォルトでmm/dd/yyyyになる問題
解決したいこと
Laravelを利用してウェブサイト作成を行っています。
カレンダーによる日付入力を行うために、
<input type="date">
を利用したところ、日付の書式がデフォルトでmm/dd/yyyyになってしまい困っています。
書式をdd/mm/yyyyに変更したいのですが、
解決方法を教えて下さい。
発生している問題・エラー
<input type="date" format="dd/mm/yyyy">
日付の書式がmm/dd/yyyyに変更されません。
自分で試したこと
①htmlの言語設定ファイルを
<html lang="ja" xml:lang="ja">
に変更してみたがダメだった。
②Laravelのタイムゾーン設定をUTCから日本にしてみたがダメだった。
config/app.php
'timezone' => env('APP_TIMEZONE', 'Asia/Tokyo'),
5Answer
ブラウザは何でしょう? input type="date" はブラウザ依存の動きとなると思いますが。
【追記】
日付の書式がデフォルトでmm/dd/yyyyになってしまい困っています。
日本語版 Windows 10 の Chrome, Edge, Firefox, Opera では表示は yyyy/MM/dd 形式になります。下は Chrome の例。
質問者さんの PC の OS は米国版ではないのですか?
他の方が回答している通りブラウザ上での表示はブラウザのロケールによって変わるようです。
ロケールによらず固定したいのなら javascript ライブラリを使ってはいかがですか? 「javascript datepicker ライブラリ」などをキーワードにググるといろいろヒットします。例えば下記:
UIのイケているdatepickerライブラリpickadate.jsが最高だった(demo有)
https://qiita.com/Yuta_Fujiwara/items/e80fb931af623bd8e73e
他にもいろいろヒットしますので自分でも調べてください。
-
<input type="date">
にformat
属性は定義されていません -
表示される日付はユーザーのブラウザーに設定されたロケールに基づいた書式
- …なので、サーバではなくクライアント側のOSやブラウザのロケール設定を変更する必要があります
Hi, maybe you can try this framework https://www.jonthornton.com/jquery-timepicker/
and modify it.
コンパネの「地域」はどうでしょう。