আমি ডাটাবেস থেকে প্রাপ্ত তারিখের ফর্ম্যাটটি পরিবর্তন করতে চাই। এখন আমি 2016-10-01 পেয়েছি 1 {{$user->from_date}}
আমি লারাভেল 5.3 এ 'dmy' ফর্ম্যাটটি পরিবর্তন করতে চাই
{{ $user->from_date->format('d/m/Y')}}
আমি ডাটাবেস থেকে প্রাপ্ত তারিখের ফর্ম্যাটটি পরিবর্তন করতে চাই। এখন আমি 2016-10-01 পেয়েছি 1 {{$user->from_date}}
আমি লারাভেল 5.3 এ 'dmy' ফর্ম্যাটটি পরিবর্তন করতে চাই
{{ $user->from_date->format('d/m/Y')}}
উত্তর:
এটা চেষ্টা কর:
date('d-m-Y', strtotime($user->from_date));
এটি তারিখকে রূপান্তর করবে d-m-Y
বা আপনি যে কোনও ফর্ম্যাট দিয়েছেন।
দ্রষ্টব্য: এই দ্রবণটি একটি সাধারণ সমাধান যা পিএইচপি এবং এর কোনও ফ্রেমওয়ার্কের জন্য কাজ করে। লারাভেল নির্দিষ্ট পদ্ধতির জন্য হামেলরাজের সরবরাহিত সমাধানটি চেষ্টা করুন ।
লারাভেলে কার্বন ব্যবহার করুন এটির ভাল
{{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}
null
?
parse(null)
তা বর্তমান তারিখের সময় হিসাবে রূপান্তরিত হবে
আপনার মডেল সেটে:
protected $dates = ['name_field'];
আপনার দৃষ্টিতে পরে:
{{ $user->from_date->format('d/m/Y') }}
কাজ করে
Call to a member function format() on null
আপনি যাচাই করতে পারেন Date Mutators
: https://laravel.com/docs/5.3/eloquent-mutators#date-mutators
তুমি তোমার মধ্যে সেট প্রয়োজন User
মডেল কলাম from_date
মধ্যে $dates
অ্যারে এবং তারপর আপনি ফর্ম্যাটে পরিবর্তন করতে পারেন$dateFormat
অন্য বিকল্পটিও আপনার User
মডেলটিতে এই পদ্ধতিটি রাখে :
public function getFromDateAttribute($value) {
return \Carbon\Carbon::parse($value)->format('d-m-Y');
}
এবং তারপরে আপনি যদি চালনা করেন তবে আপনি {{ $user->from_date }}
যে ফর্ম্যাটটি চান তা দেখতে পাবেন।
3 টি উপায় রয়েছে যা আপনি করতে পারেন:
1) লারাভেল মডেল ব্যবহার
$user = \App\User::find(1);
$newDateFormat = $user->created_at->format('d/m/Y');
dd($newDateFormat);
2) পিএইচপি স্ট্রোটোটাইম ব্যবহার করে
$user = \App\User::find(1);
$newDateFormat2 = date('d/m/Y', strtotime($user->created_at));
dd($newDateFormat2);
3) কার্বন ব্যবহার
$user = \App\User::find(1);
$newDateFormat3 = \Carbon\Carbon::parse($user->created_at)->format('d/m/Y');
dd($newDateFormat3);
পদ্ধতি এক:
strtotime()
তারিখটি প্রদত্ত ফর্ম্যাটে পরিবর্তনের জন্য সময় ব্যবহার করা সেরা বিন্যাস।
strtotime()
- ইউনিক্স টাইমস্ট্যাম্পে যে কোনও ইংরেজি পাঠ্য তারিখের সময় বিবরণ সম্পর্কে পার্স করুন
ফাংশনটি একটি ইংরাজী তারিখের ফর্ম্যাটযুক্ত একটি স্ট্রিং দেওয়ার প্রত্যাশা করে এবং সেই ফর্ম্যাটটিকে ইউনিক্স টাইমস্ট্যাম্পে (জানুয়ারীর 1 জানুয়ারি 00:00:00 ইউটিসি থেকে সেকেন্ডের সংখ্যা) পার্স করার চেষ্টা করবে, এখন যে টাইমস্ট্যাম্পের তুলনায়, বা বর্তমান সময় যদি এখন সরবরাহ করা হয় না।
উদাহরণ:
<?php
$timestamp = strtotime( "February 26, 2007" );
print date('Y-m-d', $timestamp );
?>
আউটপুট:
2007-02-26
পদ্ধতি দুটি:
date_format()
- একটি নতুন ডেটটাইম অবজেক্ট ফিরিয়ে দিন এবং তারপরে তারিখটি ফর্ম্যাট করুন:
<?php
$date=date_create("2013-03-15");
echo date_format($date,"Y/m/d H:i:s");
?>
আউটপুট:
2013/03/15 00:00:00
আমার অনুরূপ সমস্যা ছিল, আমি ফর্ম্যাটটি পরিবর্তন করতে চেয়েছিলাম, তবে আমি ফলক টেম্পলেট ইঞ্জিনেও ফর্ম্যাটটি পরিবর্তন করতে সক্ষম হওয়ার নমনীয়তা চেয়েছিলাম wanted
আমি, তাই আমার মডেলটিকে নিম্নলিখিত হিসাবে সেট আপ করি:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
\Carbon\Carbon::setToStringFormat('d-m-Y');
class User extends Model
{
protected $dates = [
'from_date',
];
}
setToStringFormat
এই মডেল জন্য এই বিন্যাসে ব্যবহার করার জন্য তারিখ সেট হবে।
আমার জন্য এটির সুবিধাটি হ'ল আমি যে ফরম্যাটটি চাইছিলাম তা আমি মিউটর ছাড়াই পেতে পারি, কারণ মিউটরটির সাথে, বৈশিষ্ট্যটি একটি স্ট্রিং হিসাবে ফিরে আসে যার অর্থ ব্লেড টেম্পলেটে আমি চাইলে এই জাতীয় কিছু লিখতে হত I টেমপ্লেটে ফর্ম্যাটটি পরিবর্তন করুন:
{{ date('Y', strtotime($user->from_date)) }}
যা খুব পরিষ্কার নয়।
পরিবর্তে, গুণটি এখনও কার্বন উদাহরণ হিসাবে ফিরে আসে, তবে এটি প্রথমে পছন্দসই বিন্যাসে ফিরে আসে।
এর অর্থ এই যে টেমপ্লেটে আমি নিম্নলিখিত, ক্লিনার, কোডটি লিখতে পারি:
{{ $user->from_date->format('Y') }}
কার্বন ইনস্ট্যান্সটির পুনরায় ফর্ম্যাট করতে সক্ষম হওয়া ছাড়াও, আমি টেমপ্লেটের বৈশিষ্ট্যে বিভিন্ন কার্বন পদ্ধতিও কল করতে পারি।
এই পদ্ধতির জন্য সম্ভবত একটি তদারকি রয়েছে; আমি বাজি নিয়ে যাচ্ছি মডেলটির শীর্ষে স্ট্রিং ফর্ম্যাটটি নির্দিষ্ট করা ভাল ধারণা নয় যদি এটি অন্যান্য স্ক্রিপ্টগুলিকে প্রভাবিত করে। আমি এ পর্যন্ত যা দেখেছি, তা থেকে হয়নি। এটি কেবলমাত্র সেই মডেলের জন্য কেবলমাত্র ডিফল্ট কার্বনকে পরিবর্তন করেছে।
এই উদাহরণস্বরূপ, এটি কার্বন ফর্ম্যাটটি মডেল স্ক্রিপ্টের নীচে যা ছিল মূলত ফিরে আসতে পারে set এটি একটি উদ্ভাসিত ধারণা, তবে এটি প্রতিটি মডেলের নিজস্ব ফর্ম্যাট রাখার জন্য কাজ করবে।
বিপরীতে, যদি আপনি প্রতিটি মডেলের জন্য একই ফর্ম্যাটটি রেখে থাকেন তবে তার পরিবর্তে আপনার অ্যাপসেস্প্রোভাইডারটিতে। এটি কেবল কোডটি আরও সুন্দর এবং বজায় রাখা সহজ রাখবে।
কখনও কখনও তারিখের ফর্ম্যাট পরিবর্তন করা সঠিকভাবে কাজ করে না, বিশেষত লারাভেলে। সুতরাং সেই ক্ষেত্রে, এটি ব্যবহার করা ভাল:
$date1 = strtr($_REQUEST['date'], '/', '-');
echo date('Y-m-d', strtotime($date1));
তাহলে আপনি "1970-01-01" এর মতো ত্রুটি এড়াতে পারবেন!
m/d/y
বা d-m-y
ফর্ম্যাটগুলির তারিখগুলি অসম্মানিত হয়: বিভাজক যদি স্ল্যাশ হয় (/)
তবে আমেরিকান m/d/y
ধরে নেওয়া হয়; যদিও বিভাজকটি যদি কোনও ড্যাশ (-)
বা বিন্দু হয় (.)
তবে ইউরোপীয় d-m-y
ফর্ম্যাটটি ধরে নেওয়া হবে। তবে, বছরটি দুটি অঙ্কের ফর্ম্যাটে দেওয়া হয় এবং বিভাজকটি একটি ড্যাশ হয় (-)
, তারিখের স্ট্রিংটি পার্স করা হয় y-m-d
। php.net/manual/en/function.strtotime.php
লারাভেলে আপনি অ্যাপ / হেল্পার / হেল্পার.এফপি মত একটি ফাংশন যুক্ত করতে পারেন
function formatDate($date = '', $format = 'Y-m-d'){
if($date == '' || $date == null)
return;
return date($format,strtotime($date));
}
এবং এই জাতীয় কোনও নিয়ামক এই ফাংশন কল
$start_date = formatDate($start_date,'Y-m-d');
আশা করি এটা সাহায্য করবে!
from_date
কলাম প্রদর্শন করার সময় তারিখের ফর্ম্যাটটি পরিবর্তন করার দরকার নেই ।