আমি এই সপ্তাহের সোমবারটি সাথে পেতে পারি:
$monday = date_create()->modify('this Monday');
আমি এই মাসের প্রথম দিকে একই স্বাচ্ছন্দ্যে পেতে চাই। আমি কীভাবে এটি অর্জন করতে পারি?
আমি এই সপ্তাহের সোমবারটি সাথে পেতে পারি:
$monday = date_create()->modify('this Monday');
আমি এই মাসের প্রথম দিকে একই স্বাচ্ছন্দ্যে পেতে চাই। আমি কীভাবে এটি অর্জন করতে পারি?
উত্তর:
পিএইচপি 5.3 কাজ করার প্রয়োজন (পিএইচপি 5.3 এ "প্রথম দিন" চালু করা হয়েছে)। অন্যথায় উপরোক্ত উদাহরণটিই এটি করার একমাত্র উপায়:
<?php
// First day of this month
$d = new DateTime('first day of this month');
echo $d->format('jS, F Y');
// First day of a specific month
$d = new DateTime('2010-01-19');
$d->modify('first day of this month');
echo $d->format('jS, F Y');
// alternatively...
echo date_create('2010-01-19')
->modify('first day of this month')
->format('jS, F Y');
পিএইচপি 5.4+ এ আপনি এটি করতে পারেন:
<?php
// First day of this month
echo (new DateTime('first day of this month'))->format('jS, F Y');
echo (new DateTime('2010-01-19'))
->modify('first day of this month')
->format('jS, F Y');
আপনি যদি এটি করার জন্য একটি সংক্ষিপ্ত উপায় পছন্দ করেন এবং সংখ্যাসূচক মানগুলিতে ইতিমধ্যে বছর এবং মাস রয়েছে, আপনি ব্যবহার করতে পারেন date()
:
<?php
echo date('Y-m-01'); // first day of this month
echo date("$year-$month-01"); // first day of a month chosen by you
->modify()
যদি চলতি মাসের প্রথম দিনটি চান তবে আপনাকে যেতে হবে না । আপনি পাস করতে পারেন 'first day of this month'
মত সরাসরি তারিখসময় কন্সট্রাকটর করুন: $date = new DateTime('first day of this month')
। শুধু বলছি ...
আমি যা ব্যবহার করি তা এখানে।
মাসের প্রথম দিন:
date('Y-m-01');
মাসের শেষ দিন:
date('Y-m-t');
date('Y-m-t');
।
date('w', '2015-05-01');
তবে আমি আসল দিনের পরিবর্তে আগের দিনটি শেষ করব। (এটি আমাকে সঠিক 5 এর পরিবর্তে 4 দেয়)।
$monthStart = date('Y-m-01 00:00:00'); $monthEnd = date('Y-m-t 23:59:59');
আপনার যা প্রয়োজন তা হ'ল:
$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/>';
strtotime('first day of this month', time())
প্রথম দিনটি ফিরে আসবে, এবং সময়টি বর্তমানের মতো। সুতরাং সেখানে, এটি প্রথম দিন 0:00 টা বাজে, তার প্রথম দিন এবং সময় যেমন এখন। এটি এটি স্থির করে strtotime('first day of this month 00:00:00', time())
।
বর্তমানে আমি এই সমাধানটি ব্যবহার করছি:
$firstDay = new \DateTime('first day of this month');
$lastDay = new \DateTime('last day of this month');
আমি যে বিষয়টি নিয়ে এসেছি তা হ'ল অদ্ভুত সময় নির্ধারণ করা হচ্ছে। আমাদের আমাদের অনুসন্ধান ইন্টারফেসের জন্য সঠিক পরিসীমা প্রয়োজন এবং আমি এটি দিয়ে শেষ করেছিলাম:
$firstDay = new \DateTime('first day of this month 00:00:00');
$lastDay = new \DateTime('first day of next month 00:00:00');
আমি এই কমান্ডটি ব্যবহার করে এটি করার জন্য একটি উন্মাদ উপায় ব্যবহার করি
$firstDay=date('Y-m-d',strtotime("first day of this month"));
$lastDay=date('Y-m-d',strtotime("last day of this month"));
এখানেই শেষ
কুরুচিপূর্ণ, (এবং উপরে আপনার পদ্ধতি কলটি ব্যবহার করে না) তবে কাজ করে:
echo 'First day of the month: ' . date('m/d/y h:i a',(strtotime('this month',strtotime(date('m/01/y')))));
last day of {$month} {$year}
বা last day of this month
উভয়ই কাজ করে। তবে মনে রাখবেন যে Dece মাসটি "ডেসেমেম্বার" হিসাবে ভেবে সমস্তভাবে "জানুয়ারী" এর মতো মাসের নাম সম্বলিত একটি স্ট্রিং হতে হবে। অথবা আপনি সহজভাবে ব্যবহার করতে পারেন date('Y-m-t');
।
আমি এটি কোনও দৈনিক ক্রোন জব দিয়ে ব্যবহার করি কিনা তা পরীক্ষা করতে আমার কোনও অনুমোদিত মাসের প্রথম দিনটিতে আমার কোনও ইমেল প্রেরণ করা উচিত কিনা তা যাচাই করতে। এটি অন্যান্য উত্তরের চেয়ে কয়েকটি লাইন তবে শিলা হিসাবে শক্ত।
//is this the first day of the month?
$date = date('Y-m-d');
$pieces = explode("-", $date);
$day = $pieces[2];
//if it's not the first day then stop
if($day != "01") {
echo "error - it's not the first of the month today";
exit;
}
তারিখ পদ্ধতি ব্যবহার করে, আমাদের ফলাফলটি পাওয়া উচিত। অর্থাত; তারিখ ('এন / ডি / এল', এমকিটাইম (0, 0, 0, মাস, দিন, বছর));
উদাহরণ স্বরূপ
echo date('N', mktime(0, 0, 0, 7, 1, 2017)); // will return 6
echo date('D', mktime(0, 0, 0, 7, 1, 2017)); // will return Sat
echo date('l', mktime(0, 0, 0, 7, 1, 2017)); // will return Saturday
আত্মিকভাবে এই সমস্ত বিশেষ পিএইচপি এক্সপ্রেশনগুলি first day of ...
দুর্দান্ত, যদিও তারা আমার মাথা থেকে বার বার চলে যায়।
সুতরাং আমি সিদ্ধান্ত নিয়েছি যে বেশ কয়েকটি বেসিক ডেটটাইম বিমূর্ততা এবং নির্দিষ্ট বাস্তবায়ন টন যা কোনও আইডিই দ্বারা স্বয়ংক্রিয়ভাবে সম্পন্ন হয়। বিষয়টি খুঁজে বের করতে হবে কী জিনিস তা । ভালো লেগেছে, today
, now
, the first day of a previous month
, ইত্যাদি সেগুলো আমি তালিকাভুক্ত করেছি সব হয় datetimes। সুতরাং, একটি ইন্টারফেস বা বিমূর্ত শ্রেণি বলা হয় ISO8601DateTime
, এবং নির্দিষ্ট তারিখের সময় যা এটি প্রয়োগ করে।
আপনার বিশেষ ক্ষেত্রে কোডটি দেখতে এমন দেখাচ্ছে:
(new TheFirstDayOfThisMonth(new Now()))->value();
এই পদ্ধতির সম্পর্কে আরও তথ্যের জন্য, এই এন্ট্রিটি একবার দেখুন ।