এটি এই প্রশ্নের সবচেয়ে জনপ্রিয় ফর্ম বলে মনে হচ্ছে যেহেতু আমি এটিকে এখানে ফেলে দেব।
আমি পিএইচপি জন্য সর্বাধিক জনপ্রিয় 3 বছর বয়সী ফানসিগুলির সাথে 100 বছরের তুলনা চালিয়েছি এবং আমার ফলাফলগুলি (পাশাপাশি ফাংশনগুলি) আমার ব্লগে পোস্ট করেছি ।
আপনি সেখানে দেখতে পাচ্ছেন , সমস্ত 3 ফান্যাকগুলি 2 য় ফাংশনে সামান্য পার্থক্য সহ ভালভাবে প্রিফর্ম করে। আমার ফলাফলের উপর ভিত্তি করে আমার পরামর্শটি আপনি যদি কোনও ব্যক্তির জন্মদিনে সুনির্দিষ্ট কিছু করতে না চান তবে তৃতীয় ফাংশনটি ব্যবহার করা উচিত, সেক্ষেত্রে 1 ম ফাংশনটি ঠিক এটি করার সহজ উপায় সরবরাহ করে।
পরীক্ষার সাথে ছোট সমস্যা, এবং ২ য় পদ্ধতিতে আর একটি সমস্যা পাওয়া গেছে! আপডেট শীঘ্রই ব্লগে আসছে! আপাতত, আমি খেয়াল করব, ২ য় পদ্ধতি এখনও অনলাইনে সর্বাধিক জনপ্রিয়, এবং এখনও যেটির মধ্যে আমি সবচেয়ে বেশি ত্রুটিগুলি খুঁজে পাচ্ছি!
আমার 100 বছরের পর্যালোচনার পরে আমার পরামর্শগুলি:
আপনি যদি আরও দীর্ঘায়িত কিছু চান যাতে আপনি জন্মদিনের মতো অনুষ্ঠানগুলি এবং এর মধ্যে অন্তর্ভুক্ত করতে পারেন:
function getAge($date) { // Y-m-d format
$now = explode("-", date('Y-m-d'));
$dob = explode("-", $date);
$dif = $now[0] - $dob[0];
if ($dob[1] > $now[1]) { // birthday month has not hit this year
$dif -= 1;
}
elseif ($dob[1] == $now[1]) { // birthday month is this month, check day
if ($dob[2] > $now[2]) {
$dif -= 1;
}
elseif ($dob[2] == $now[2]) { // Happy Birthday!
$dif = $dif." Happy Birthday!";
};
};
return $dif;
}
getAge('1980-02-29');
তবে আপনি যদি কেবল বয়স এবং আরও কিছু জানতে চান না, তবে:
function getAge($date) { // Y-m-d format
return intval(substr(date('Ymd') - date('Ymd', strtotime($date)), 0, -4));
}
getAge('1980-02-29');
strtotimeপদ্ধতি সম্পর্কে একটি মূল নোট :
Note:
Dates in the m/d/y or d-m-y formats are disambiguated by looking at the
separator between the various components: if the separator is a slash (/),
then the American m/d/y is assumed; whereas if the separator is a dash (-)
or a dot (.), then the European d-m-y format is assumed. If, however, the
year is given in a two digit format and the separator is a dash (-, the date
string is parsed as y-m-d.
To avoid potential ambiguity, it's best to use ISO 8601 (YYYY-MM-DD) dates or
DateTime::createFromFormat() when possible.
mktime()। মনে হচ্ছে পিএইচপিstrtotime()এই ফর্ম্যাটটি দিয়ে ভুলভাবে গণনা করেছে ।