توابع php - کار با تاریخ و زمان

دسته بندی: آموزش
زمان مطالعه: 2 دقیقه
۱۸ مرداد ۱۳۹۳

در این جلسه در مورد توابع کار با تاریخ و زمان در زبان php صحبت می کنیم و کار با تاریخ و زمان و انجام عملیات بر روی آنها رو توضیح خواهیم داد .

موارد مطرح شده در این جلسه عبارتند از :

توابع php  کار با تاریخ و زمان

  • توابع از پيش تعريف شده ي PHP و مزاياي استفاده از آنها
  • نحوه ي جستجوي توابع مختلف PHP و يافتن توابع مورد نياز شما
  • کار با تاريخ و زمان :
  • دريافت و فرمت بندي تاريخ کنوني سرور  و تبديل timestamp به تاريخ
  • دريافت زمان و ساعت کنوني سرور به شکل timestamp
  • دريافت زمان کنوني به ميکروثانيه
  • ساخت يک شئ از کلاس تاريخ
  •  ساخت يک شئ تاريخ با فرمت دلخواه
  • دريافت منطقه ي زماني
  • تنظيم کردن منطقه ي زماني
  • افزودن يک مقدار (ساعت،روز،ماه ...) به يک تاريخ
  • کم کردن و تفريق يک بازه ي زماني از يک تاريخ
  • دريافت اختلاف زماني بين دو تاريخ مختلف
  • انجام تغيرات در تاريخ
  • نمايش يک تاريخ با فرمت خاص
  • دريافت اجزاء مختلف تاريخ (روز، ماه، سال، ثانيه، دقيقه، ساعت و ...)
  • دريافت زمان طلوع خورشيد
  • دريافت زمان غروب خورشيد
  • تنظيم ساعت در يک تاريخ
  • دريافت برچسب زماني (timestamp) يک تاريخ
  • تبديل يک رشته ي تاريخ  به timestamp
  • دريافت اطلاعات و اجزاء مختلف تاريخ کنوني سرور
  • دريافت اجزاء مختلف تاريخ (ساعت، روز، ماه و ...)  به صورت عدد صحيح
  • بهره گیری و استفاده از تاریخ فارسی با کتابخانه ی jdf
  • ميني پروژه : نمايش تاريخ به صورت زمان گذشته شده تا کنون (مثال : 2 ماه  پيش)
  • تمرين
:: توجه

این مطلب یک جلسه از آموزش PHP می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در آموزش PHP

نویسنده
بیش از 15 سال هست که برنامه نویسی می کنم و از بین همه زبون هایی که کار کردم جاوا، اسمبلی و php رو دوست دارم. دانشجوی دکترای نرم افزارم و توی دانشگاه روی پردازش بیگ دیتا و پردازش موازی کار کردم و عاشق چالش از هر نوعیش هستم! سون لرن مثل بچه منه که 12 سال براش وقت گذاشتم، اینجا همه تلاش می کنیم از شروع یادگیری تا ورود به بازر کار حوزه برنامه نویسی و IT همراهتون باشیم.

جلسات دوره

نظرات کاربران

علی مجیدی

سلام ،
چرا وقتی که diff تعریف کردید بعدش اختلاف d1, $d2$ رو گرفتید شد 3سسال و 11 ماه و خردی نشون داد 6000 روز؟

علی مجیدی

سلام ،
چرا وقتی که diff تعریف کردید بعدش اختلاف d1, d2 رو گرفتید شد 3سسال و 11 ماه و خردی نشون داد 6000 روز؟

امیرحسین

سلام
من به یک مشکل جالبی خوردم
یک تاریخ مشخص کردم مثل 25-08-1998 و این تاریخ رو به تابع strtotime دادم

و یک شئی هم از کلاس DateTime کردم و با متد setDate همین تاریخ رو براش ست کرده
اما وقتی این دوتا رو echo میکنم دوتا تایم استمپ مختلف میگیرم که حتی تایم استمپ شئی با هربار رفرش صفحه تغییر میکنه

اما وقتی این دوتا تایم استمپ رو به تابع date میدم همین تاریخ ست شده بر میگرده
چرا این اتفاق افتاده ؟؟؟؟

<?php
date_default_timezone_set("Asia/Tehran");
echo strtotime("1998-08-25") . "<br>";
echo date("Y – F – d", strtotime("1998-08-25")) . "<br>";

$d1 = new DateTime();
$d1->setDate(1998, 8, 25);
echo $d1->getTimestamp() . "<br>";
echo date("Y – F – d", $d1->getTimestamp());


?>
لقمان آوند

آخر کدت var_dump($d1); کن. متوجه میشی چرا اینطوره. d1 داره ثانیه های طی شده روز رو حساب می کنه. تو بخش دوم فرمت تعین کن برا تاریخ که شامل ساعت و دقیقه و ثانیه نباشه

Reza Zabet

سلام وقت بخیر به اساتید عزیز مخصوصا آقای لقمان 🙂 آموزش ها بسیار عالی و جامع هستند
در این فصل قسمت مینی پروژه سوالی برام پیش اومد در قسمتی که $eTime = time() – $ts; رو قرار دادید
مقدار time() برابر با 1542230467 میشه حالا اگر متغییر $ts رو برابر با 100 کنیم چرا مقدار eTime مساوی با 100 میشه مگر مقدار تایم اینجا نشده 1542230467 پس 100 باید از این عدد کم بشه و ریخته بشه در eTime چرا 100 ریخته شده ؟
مرسی

Reza Zabet

یک سال بعد

محمدامین عطائی

اواخر این قسمت استاد میگن سال حیوانی ! کلی خندیدم. امسال که برای کل ایران سال حیوانی بود.

Hossein Norouzi

به این شکل هم میشه نوشتنش مینی پروژه آخر جلسه رو اگه اشتباه ننوشته باشم
خیلی کد کمتری داره و به طور دقیق زمان گذشته شده رو میده …

function agoTime($timestr){
    $curTime = new DateTime();
    $passTime = new DateTime($timestr);
    $e = $curTime->diff($passTime);
    echo $e->y.’  Year  ‘.$e->m .’  Month  ‘.$e->d .’  Day  ‘.$e->h .’  Hours  ‘.$e->m .’  Min  ‘.$e->s .’  Sec ‘.’  Ago :)  ‘;
}
agoTime(‘2001-03-29’);
mahdi kalhor

من از دانشجوهای دوره php هستم
یک فرم تعریف کرده ام به شکل زیر :

ولی در php با آرایه های
_post
_get
_request
به آنها دسترسی ندارم
متاسفانه با جستحو هم چیزی پیدا نکردم؟
بهتون ایمیل هم زدم آقای آوند…کد هام انگار نمیاد

لقمان آوند

فایل هاتون رو زیپ کنید برام ایمیل کنید می بینیم …

Aryoubarzan Yousefi

سلام
چندین بار تلاش کردم ولی فایلهای غیر ویدئویی جلسات 10 و 11 دانلود نمیشوند! لطفا بررسی بفرمایید

سید رضا ظریف نهاد

من هم همین مشکل رو دارم

جواد باقی

سلام
بنده تست کردم مشکلی نداشتن.
لطفا یک بار مودمتون رو خاموش کنید و بعد از روشن کردن دوباره تست کنید.

roohi b

سلام میشه دلیل این مشکلی که ب وجود اومده رو بررسی کنید ممنون
http://s6.uplod.ir/i/00776/431x6y0t3mp2.jpg

لقمان آوند

شما تو مد strict standard دارید کار می کنید که بهتون استفاده از توابع استاندارد و به روز تر رو پیشنهاد میکنه. به جای mktime از تابع time استفاده کنید.

roohi b

تشکر بابت پاسخ

Omid Ctrain

لطفاً دوره های mvc رو هم بذارین. تشکر

majid nasrollahi

با سلام خدمت آقای آوند و همکاران محترم، تاریخی که در صفحه اول سایت نمایش داده میشود چگونه ساخته میشود مثلا امرو تاریخ چهار شنبه یا پنجشنبه 30مهر ماه مثلا 94 تاریخ همان روزی که سایت مشاهده میشود با تشکر از شما

وحید صالحی

هم با جاوا اسکریپت می تونید ایجادش کنید که در گوگل عبارت نمایش تاریخ کنونی توسط جاوااسکریپت یا جی کوئری رو جستجو کنید کدهای زیادی موجوده و هم با php توسط timestamp و تبدیل اون به تاریخ جاری و استفاده از کتابخانه jdf برای شمسی سازی اون می تونید استفاده کنید

روانبخش

با سلام و احترام
برای تمرین شما من کد زیر رو نوشتم آیا خروجی درست هست؟

پایان زمان پشتیبانی

دانشجوی گرامی، بازه پشتیبانی فعال برای این دوره ۳ ماه است که برای شما به پایان رسیده است.

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

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
گزارش مشکل