چگونه در PHP از تاریخ فعلی بکاهیم یا به آن اضافه کنیم؟

۲ دیدگاه

تقریبا در همه پروژه هایی که کار می کنم نیاز به کار کردن با تاریخ و زمان وجود دارد.

گاهی نیاز است به اندازه X روز از تاریخ امروز جلوتر برویم، گاهی باید بفهمیم X روز پیش چه تاریخی می شد و …

خوشبختانه امکانات PHP برای کار کردن با تاریخ و زمان کامل است و هیچ جا احساس کمبودی نخواهید کرد.

در ادامه می خواهیم نحوه اضافه کردن به تاریخ امروز و یا برعکس ، کاستن از تاریخ امروز و رفتن به گذشته را کار کنیم. مهم ترین تابعی که این امکان را برای ما فراهم می کند تابع strtotime است.

نحوه اضافه کردن ۲ روز به تاریخ امروز

$date = date('Y-m-j');
$newdate = strtotime ( '+2 day' , strtotime ( $date ) ) ;
$newdate = date ( 'Y-m-j' , $newdate );
echo $newdate;

نحوه اضافه کردن ۴ ماه به تاریخ امروز

$date = date('Y-m-j');
$newdate = strtotime ( '+2 month' , strtotime ( $date ) ) ;
$newdate = date ( 'Y-m-j' , $newdate );
echo $newdate;

نحوه اضافه کردن ۲ سال به تاریخ امروز

$date = date('Y-m-j');
$newdate = strtotime ( '+2 year' , strtotime ( $date ) ) ;
$newdate = date ( 'Y-m-j' , $newdate );
echo $newdate;

نحوه کم کردن ۶ ساعت از تاریخ امروز

$date = date('Y-m-j');
$newdate = strtotime ( '-6 hour' , strtotime ( $date ) ) ;
$newdate = date ( 'Y-m-j' , $newdate );

echo $newdate;

نحوه کم کردن ۱۰ دقیقه از تاریخ امروز

$date = date('Y-m-j');
$newdate = strtotime ( '-10 minute' , strtotime ( $date ) ) ;
$newdate = date ( 'Y-m-j' , $newdate );

echo $newdate;

ممکن است پایه محاسبات شما تاریخ امروز نباشد و تاریخ دیگری باشد. مشکلی نیست می توانید هر تاریخی بخواهید به عنوان بیس استفاده کنید. مثل مثال بعدی.

نحوه اضافه کردن ۱ سال به تاریخ ۲۰۱۲-۱۱-۲۵

$date = date('2011-11-25');
$newdate = strtotime ( '+1 year' , strtotime ( $date ) ) ;
$newdate = date ( 'Y-m-j' , $newdate );

echo $newdate;

با مشاهده این مثال ها می توانید ببینید که عقب و جلو رفتن در تاریخ سخت نیست.

در همین رابطه :   چگونه : داده ها را از فایل excel بخوانیم و در دیتابیس MySQL بریزیم ؟!

شاید بخواهید نوع خروجی را تغییر دهید. مثلا در کنار تاریخ ، زمان را هم دریافت کنید. برای این کار کافیست ابتدا ساعت و بعد نوع خروجی را به این شکل مشخص کنید:

$date = date('2011-11-25 14:13:55');
$newdate = strtotime ( '+1 year' , strtotime ( $date ) ) ;
$newdate = date ( 'Y-m-j H:i:s' , $newdate );

echo $newdate;

اگر تاریخ اولیه دارای ساعت نباشد، خروجی زمان ۰۰:۰۰:۰۰ خواهد بود یعنی اول زمان روز.

منبع

دسته بندی : PHPPHP

2 نظر

  1. با سلام
    خیلی وقته برام سوال شده که چگونه یه سرویس شارژ یه ماه اینترنت از مخابرات میگیرم وبه صورت نمودار دایره ای در پنل کاربری نشون میده.
    مثلا ۳۱ روز .بعد به تعداد روزهای کم شده از نمودار دایره ای کم میشه با رنگ سفید.
    حال سوالم اینه که چگونه کد php یا با لاراول میشه کدشو نوشت.
    خیلی ضروریه.

    1. سلام دوست من
      توضیح اش مفصل هست در اینجا مجال توضیح کامل نیست. انشالله سعی می کنیم یه مقاله در این مورد بنویسیم. پیشنهاد می کنم مقاله کار با تاریخ و زمان در لاراول رو در همین سایت پیدا و مطالعه کنین

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

More in PHP, PHP
چگونه مشکل کند بودن Composer را حل و ۱۰ برابر سریع تر کنیم؟

یکی از مشکلاتی که اخیرا با آن روبرو شدم کند بودن شدید کمپوزر (Composer) یا بهتره بگم توقف کامل سایت...

Close