আমি পিএইচপি-তে মাসের শেষ দিনটি কীভাবে পেতে পারি?
প্রদত্ত:
$a_date = "2009-11-23"
আমি চাই 2009-11-30; এবং দেওয়া
$a_date = "2009-12-23"
আমি 2009-12-31 চাই।
আমি পিএইচপি-তে মাসের শেষ দিনটি কীভাবে পেতে পারি?
প্রদত্ত:
$a_date = "2009-11-23"
আমি চাই 2009-11-30; এবং দেওয়া
$a_date = "2009-12-23"
আমি 2009-12-31 চাই।
উত্তর:
t
প্রদত্ত তারিখের মাসের দিনগুলি প্রদান করে (এর জন্য ডক্সdate
দেখুন ):
$a_date = "2009-11-23";
echo date("Y-m-t", strtotime($a_date));
DateTime
: আপনি ভালো কিছু করতে পারেন(new DateTime('2009-11-23'))->modify('last day of')
স্ট্রোটাইম () ব্যবহার করে কোডটি ২০৩৮ সালের পরে ব্যর্থ হবে ((এই থ্রেডের প্রথম উত্তরে দেওয়া আছে) উদাহরণস্বরূপ নিম্নলিখিতটি ব্যবহার করে দেখুন:
$a_date = "2040-11-23";
echo date("Y-m-t", strtotime($a_date));
এটি উত্তর হিসাবে দেবে: 1970-01-31
সুতরাং স্ট্রোটোটাইমের পরিবর্তে ডেটটাইম ফাংশনটি ব্যবহার করা উচিত। নিম্নলিখিত কোড 2038 বছর সমস্যা ছাড়াই কাজ করবে:
$d = new DateTime( '2040-11-23' );
echo $d->format( 'Y-m-t' );
strtotime
কোডটি আমাকে এই ফলাফল দেয়: 2040-11-30
আমি জানি যে এটি কিছুটা দেরি হয়েছে তবে আমি মনে করি ডেটটাইম ক্লাসটি PHP 5.3+
ব্যবহার করে এটি করার আরও একটি মার্জিত উপায় আছে :
$date = new DateTime('now');
$date->modify('last day of this month');
echo $date->format('Y-m-d');
$date = DateTime::createFromFormat('m/d/Y', '1/10/2014');
এখানে পিএইচপি ফাংশনটিতে অন্তর্নিহিত ক্যাল_ডেস_ইন_মেন্থ () ?
"এই ফাংশনটি নির্দিষ্ট ক্যালেন্ডারের জন্য বছরের মাসে মাসে সংখ্যাটি ফিরিয়ে দেবে" " http://php.net/manual/en/function.cal-days-in-month ।
echo cal_days_in_month(CAL_GREGORIAN, 11, 2009);
// = 30
এই কাজ করা উচিত:
$week_start = strtotime('last Sunday', time());
$week_end = strtotime('next Sunday', time());
$month_start = strtotime('first day of this month', time());
$month_end = strtotime('last day of this month', time());
$year_start = strtotime('first day of January', time());
$year_end = strtotime('last day of December', time());
echo date('D, M jS Y', $week_start).'<br/>';
echo date('D, M jS Y', $week_end).'<br/>';
echo date('D, M jS Y', $month_start).'<br/>';
echo date('D, M jS Y', $month_end).'<br/>';
echo date('D, M jS Y', $year_start).'<br/>';
echo date('D, M jS Y', $year_end).'<br/>';
কি ভুল - আমার জন্য সবচেয়ে মার্জিত ব্যবহার করা হয় DateTime
আমি অবাক হয়ে দেখি না DateTime::createFromFormat
, ওয়ান-লাইনার
$lastDay = \DateTime::createFromFormat("Y-m-d", "2009-11-23")->format("Y-m-t");
আপনি পরের মাসের প্রথমটির জন্য একটি তারিখ তৈরি করতে পারেন এবং তারপরে ব্যবহার করতে পারেন strtotime("-1 day", $firstOfNextMonth)
mktime(0, 0, 0, $month+1, 0, $year);
strtotime()
এবং mktime()
নিরস্ত করা হয় বেক। মাস এবং লীপ বছরের ক্যালকুলেশনের প্রান্তে তারিখ নির্ধারণের মতো পরিচিত বাগগুলি। যেহেতু DateTime
উপলভ্য, ভবিষ্যতে কোনও সমস্যা এড়াতে আপনার এই শ্রেণিটি ব্যবহার করা উচিত। strtotime()
mktime()
এটি ব্যবহার করে দেখুন, আপনি যদি পিএইচপি 5.3+ ব্যবহার করেন,
$a_date = "2009-11-23";
$date = new DateTime($a_date);
$date->modify('last day of this month');
echo $date->format('Y-m-d');
গত তারিখের পরের মাসে সন্ধানের জন্য, নিম্নলিখিত হিসাবে সংশোধন করুন,
$date->modify('last day of 1 month');
echo $date->format('Y-m-d');
ইত্যাদি
আপনার সমাধান এখানে ..
$lastday = date('t',strtotime('today'));
31
জন্য September
আপনি জানেন যে এটি সঠিক নয়।
আপনি মাসের শেষ দিনটি বেশ কয়েকটি উপায়ে খুঁজে পেতে পারেন। তবে কেবল আপনি পিএইচপি স্ট্রোটোটাইম () এবং তারিখ () ফাংশন ব্যবহার করে এটি করতে পারেন I আমি ভাবতে চাই যে আপনার চূড়ান্ত কোডটি এরকম কিছু দেখবে:
$a_date = "2009-11-23";
echo date('Y-m-t',strtotime($a_date));
তবে আপনি যদি পিএইচপি> = 5.2 ব্যবহার করছেন তবে আমি দৃ strongly়ভাবে আপনাকে নতুন ডেটটাইম অবজেক্টটি ব্যবহার করার পরামর্শ দিচ্ছি। উদাহরণস্বরূপ নীচের মত:
$a_date = "2009-11-23";
$date = new DateTime($a_date);
$date->modify('last day of this month');
echo $date->format('Y-m-d');
এছাড়াও, আপনি নীচের মত নিজস্ব ফাংশন ব্যবহার করে এটি সমাধান করতে পারেন:
/**
* Last date of a month of a year
*
* @param[in] $date - Integer. Default = Current Month
*
* @return Last date of the month and year in yyyy-mm-dd format
*/
function last_day_of_the_month($date = '')
{
$month = date('m', strtotime($date));
$year = date('Y', strtotime($date));
$result = strtotime("{$year}-{$month}-01");
$result = strtotime('-1 second', strtotime('+1 month', $result));
return date('Y-m-d', $result);
}
$a_date = "2009-11-23";
echo last_day_of_the_month($a_date);
আপনি যদি পিএইচপি ডেটটাইমের জন্য কার্বন এপিআই এক্সটেনশন ব্যবহার করেন তবে আপনি মাসের শেষ দিনটি সাথে পেতে পারেন:
$date = Carbon::now();
$date->addMonth();
$date->day = 0;
echo $date->toDateString(); // use toDateTimeString() to get date and time
$date->day = 0;
আপনার যদি এক মাসের মতো থাকে তবে মাসের শেষ তারিখটি পান,
public function getLastDateOfMonth($month)
{
$date = date('Y').'-'.$month.'-01'; //make date of month
return date('t', strtotime($date));
}
$this->getLastDateOfMonth(01); //31
এখানে একটি সম্পূর্ণ ফাংশন:
public function get_number_of_days_in_month($month, $year) {
// Using first day of the month, it doesn't really matter
$date = $year."-".$month."-1";
return date("t", strtotime($date));
}
এটি নিম্নলিখিত ফলাফল:
echo get_number_of_days_in_month(2,2014);
আউটপুট: 28
মাসের শেষ দিন পাওয়ার উপায় আছে।
//to get last day of current month
echo date("t", strtotime('now'));
//to get last day from specific date
$date = "2014-07-24";
echo date("t", strtotime($date));
//to get last day from specific date by calendar
$date = "2014-07-24";
$dateArr=explode('-',$date);
echo cal_days_in_month(CAL_GREGORIAN, $dateArr[1], $dateArr[0]);
আমি দেরি করে ফেলেছি তবে উল্লিখিত হিসাবে এটি করার কয়েকটি সহজ উপায় রয়েছে:
$days = date("t");
$days = cal_days_in_month(CAL_GREGORIAN, date('m'), date('Y'));
$days = date("j",mktime (date("H"),date("i"),date("s"),(date("n")+1),0,date("Y")));
এমকেটাইম () ব্যবহার করা সময়ের সমস্ত দিকের সম্পূর্ণ নিয়ন্ত্রণের জন্য আমার যেতে ... আই
echo "<br> ".date("Y-n-j",mktime (date("H"),date("i"),date("s"),(11+1),0,2009));
দিনটিকে 0 তে সেট করা এবং আপনার মাস 1 কে উপরে নিয়ে যাওয়া আপনাকে আগের মাসের শেষ দিন দেবে। 0 এবং negativeণাত্মক সংখ্যাগুলি বিভিন্ন যুক্তিতে একই রকম প্রভাব ফেলে। পিএইচপি: এমকিটাইম - ম্যানুয়াল
যেমনটি কেউ বলেছে যে স্ট্রোটোটাইম সবচেয়ে শক্তিশালী উপায় নয় এবং যদি কেউ সহজেই বহুমুখী না হয় তবে সামান্য।
আমি Cal_days_in_month সহ স্ট্রোটাইমটি নিম্নলিখিত হিসাবে ব্যবহার করছি:
$date_at_last_of_month=date('Y-m-d', strtotime('2020-4-1
+'.(cal_days_in_month(CAL_GREGORIAN,4,2020)-1).' day'));
আমি এটি আমার তারিখের সময় সহায়ক ক্লাসে এখানে গুটিয়ে রেখেছি https://github.com/normandqq/ তারিখ-
সময়- সহায়তা
ব্যবহার করে
$dateLastDay = Model_DTHpr::getLastDayOfTheMonth();
এবং এটি সম্পন্ন হয়
এমকিটাইম এবং তারিখ নয় ('টি') ব্যবহার করে অন্য একটি উপায় :
$dateStart= date("Y-m-d", mktime(0, 0, 0, 10, 1, 2016)); //2016-10-01
$dateEnd = date("Y-m-d", mktime(0, 0, 0, 11, 0, 2016)); //This will return the last day of october, 2016-10-31 :)
সুতরাং এটি 31,30 বা 29 হলে হয় তা গণনা করে is
function first_last_day($string, $first_last, $format) {
$result = strtotime($string);
$year = date('Y',$result);
$month = date('m',$result);
$result = strtotime("{$year}-{$month}-01");
if ($first_last == 'last'){$result = strtotime('-1 second', strtotime('+1 month', $result)); }
if ($format == 'unix'){return $result; }
if ($format == 'standard'){return date('Y-m-d', $result); }
}
মাসের শেষের দিকটি পাওয়ার জন্য এটি আরও অনেক মার্জিত উপায়:
$thedate = Date('m/d/Y');
$lastDayOfMOnth = date('d', mktime(0,0,0, date('m', strtotime($thedate))+1, 0, date('Y', strtotime($thedate))));
t
নির্দিষ্ট মাসে দিনের সংখ্যা পেতে আপনি " " তারিখ ফাংশনটিতে ব্যবহার করতে পারেন ।
কোডটি এরকম কিছু হবে:
function lastDateOfMonth($Month, $Year=-1) {
if ($Year < 0) $Year = 0+date("Y");
$aMonth = mktime(0, 0, 0, $Month, 1, $Year);
$NumOfDay = 0+date("t", $aMonth);
$LastDayOfMonth = mktime(0, 0, 0, $Month, $NumOfDay, $Year);
return $LastDayOfMonth;
}
for($Month = 1; $Month <= 12; $Month++)
echo date("Y-n-j", lastDateOfMonth($Month))."\n";
কোডটি স্ব-বর্ণিত। সুতরাং আশা করি এটি সাহায্য করবে।