Saya ingin mengubah format tanggal yang diambil dari database. sekarang saya mendapat 2016-10-01. {{$user->from_date}}
Saya ingin mengubah format 'dmy' di laravel 5.3
{{ $user->from_date->format('d/m/Y')}}
Coba ini:
date('d-m-Y', strtotime($user->from_date));
Ini akan mengubah tanggal menjadi d-m-Y
atau format apa pun yang Anda berikan.
Catatan: Solusi ini adalah solusi umum yang berfungsi untuk php dan kerangka kerjanya. Untuk metode khusus Laravel, coba solusi yang disediakan oleh Hamelraj .
from_date
kolom tampilan .Di Laravel gunakan Carbon yang bagus
{{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}
sumber
null
?parse(null)
dalamnya akan dikonversi sebagai waktu tanggal saat iniDi set Model Anda:
protected $dates = ['name_field'];
setelah dalam pandanganmu:
{{ $user->from_date->format('d/m/Y') }}
bekerja
sumber
Call to a member function format() on null
Anda dapat memeriksa
Date Mutators
: https://laravel.com/docs/5.3/eloquent-mutators#date-mutatorsAnda perlu mengatur
User
kolom model Andafrom_date
dalam$dates
array dan kemudian Anda dapat mengubah format dalam$dateFormat
Opsi lain juga meletakkan metode ini ke
User
model Anda :public function getFromDateAttribute($value) { return \Carbon\Carbon::parse($value)->format('d-m-Y'); }
dan kemudian di view jika dijalankan
{{ $user->from_date }}
anda akan melihat format yang anda inginkan.sumber
Tanggal yang mudah digunakan dalam templat pisau, gunakan Karbon seperti itu
{{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}
sumber
Ada 3 cara yang bisa Anda lakukan:
1) Menggunakan Model Laravel
$user = \App\User::find(1); $newDateFormat = $user->created_at->format('d/m/Y'); dd($newDateFormat);
2) Menggunakan strtotime PHP
$user = \App\User::find(1); $newDateFormat2 = date('d/m/Y', strtotime($user->created_at)); dd($newDateFormat2);
3) Menggunakan Karbon
$user = \App\User::find(1); $newDateFormat3 = \Carbon\Carbon::parse($user->created_at)->format('d/m/Y'); dd($newDateFormat3);
sumber
Metode Satu:
Menggunakan
strtotime()
to time adalah format terbaik untuk mengubah tanggal ke format yang diberikan.strtotime()
- Parsing tentang deskripsi tanggal waktu tekstual bahasa Inggris ke dalam stempel waktu UnixFungsi tersebut mengharapkan untuk diberikan string yang berisi format tanggal Inggris dan akan mencoba untuk mengurai format tersebut menjadi stempel waktu Unix (jumlah detik sejak 1 Januari 1970 00:00:00 UTC), relatif terhadap stempel waktu yang diberikan sekarang, atau waktu saat ini jika sekarang tidak tersedia.
Contoh:
<?php $timestamp = strtotime( "February 26, 2007" ); print date('Y-m-d', $timestamp ); ?>
Keluaran:
2007-02-26
Metode Kedua:
date_format()
- Kembalikan objek DateTime baru, lalu format tanggal:<?php $date=date_create("2013-03-15"); echo date_format($date,"Y/m/d H:i:s"); ?>
Keluaran:
2013/03/15 00:00:00
sumber
Kamu bisa memakai
Carbon::createFromTimestamp
PEDANG
{{ \Carbon\Carbon::createFromTimestamp(strtotime($user->from_date))->format('d-m-Y')}}
sumber
Saya memiliki masalah serupa, saya ingin mengubah formatnya, tetapi saya juga menginginkan fleksibilitas untuk dapat mengubah format di mesin template blade juga.
Oleh karena itu, saya mengatur model saya sebagai berikut:
<?php namespace App; use Illuminate\Database\Eloquent\Model; \Carbon\Carbon::setToStringFormat('d-m-Y'); class User extends Model { protected $dates = [ 'from_date', ]; }
Ini
setToStringFormat
akan mengatur semua tanggal untuk menggunakan format ini untuk model ini.Keuntungan dari ini bagi saya adalah saya dapat memiliki format yang saya inginkan tanpa mutator, karena dengan mutator, atribut dikembalikan sebagai string yang berarti bahwa dalam templat pisau saya harus menulis sesuatu seperti ini jika saya mau ubah format di template:
{{ date('Y', strtotime($user->from_date)) }}
Yang tidak terlalu bersih.
Sebaliknya, atribut tersebut masih dikembalikan sebagai contoh Karbon, namun atribut tersebut dikembalikan pertama kali dalam format yang diinginkan.
Itu berarti bahwa di template saya bisa menulis kode berikut, lebih bersih,:
{{ $user->from_date->format('Y') }}
Selain dapat memformat ulang contoh Karbon, saya juga dapat memanggil berbagai metode Karbon pada atribut di templat.
Mungkin ada kekeliruan dalam pendekatan ini; Saya berani bertaruh bukanlah ide yang baik untuk menentukan format string di bagian atas model jika itu mempengaruhi skrip lain.
Dari apa yang saya lihat sejauh ini, itu belum terjadi. Itu hanya mengubah Karbon default untuk model itu saja.Dalam hal ini, mungkin ini adalah pengaturan yang baik untuk mengembalikan format Carbon ke format semula di bagian bawah skrip model. Ini adalah ide bertubuh, tetapi akan bekerja untuk setiap model untuk memiliki formatnya sendiri.
Sebaliknya, jika Anda memiliki format yang sama untuk setiap model maka di AppServiceProvider Anda. Itu hanya akan membuat kode lebih rapi dan lebih mudah dipelihara.
sumber
Terkadang mengubah format tanggal tidak berfungsi dengan baik, terutama di Laravel. Jadi dalam hal ini, lebih baik menggunakan:
$date1 = strtr($_REQUEST['date'], '/', '-'); echo date('Y-m-d', strtotime($date1));
Kemudian Anda dapat menghindari kesalahan seperti "1970-01-01"!
sumber
m/d/y
ataud-m-y
disederhanakan dengan melihat pemisah antara berbagai komponen: jika pemisahnya berupa garis miring(/)
, maka orang Amerikam/d/y
dianggap; sedangkan jika pemisahnya berupa tanda hubung(-)
atau titik(.)
, makad-m-y
format Eropa diasumsikan. Namun, jika tahun diberikan dalam format dua digit dan pemisahnya berupa tanda hubung(-)
, string tanggal akan diuraikan sebagaiy-m-d
. php.net/manual/en/function.strtotime.phpDi Laravel Anda dapat menambahkan fungsi di dalam app / Helper / helper.php seperti
function formatDate($date = '', $format = 'Y-m-d'){ if($date == '' || $date == null) return; return date($format,strtotime($date)); }
Dan panggil fungsi ini pada pengontrol seperti ini
$start_date = formatDate($start_date,'Y-m-d');
Semoga membantu!
sumber