💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ علی حبیبی
کار با تاریخ در php
لقمان آوند حل شده توسط لقمان آوند

باسلام استاد من میخواستم یکسری امکانات برای پروژه 7todo اضافه کنم و برای اون امکانات باید با توابع تاریخ و date کار کنم سوالم اینه که وقتی توی محیط لوکال و زمپ هستیم تاریخ رو از سیستم خودمون میخونه؟؟

و سوال دومم اینکه وقتی رو سرور هستیم چطور از خود سرور میخونه یا میره از چه میدونم یه سایت دیگه یا یک api جهانی چیزی میخونه؟؟ ممنون میشم یکم درباره این موضوع و منطقش توضیح بدید

سلام

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

کلا به صورت پیشفرض تاریخ رو از همون سروری می‌خونه که کد روش داره اجرا میشه.

شما می‌تونید ست بکنید که سرور یا لوکال هاست شما تاریخ رو مثلا از پروتکل NTP بخونه.

یه سری NTP Server وجود داره که تاریخ و زمان جهانی رو بهتون میده.

یه سرچ بکن کلید واژه زیر رو و بیشتر بخون:

Retrieve Time from NTP server via PHP

بهترین پاسخ
لقمان آوند ۰۱ اردیبهشت ۱۳۹۹، ۱۴:۰۱

سلام.

اگر میخواهید منطقه ی زمانی تاثیری توی کارتون نداشته باشه، برای کار با زمان بهتر هست timestamp رو با استفاده از تابع time() در PHP تولید کنید و در فیلدی از نوع integer ذخیره کنید.

timestamp تعداد ثانیه گذشته از تاریخ ۱ ژانویه ۱۹۷۰ هست که یک عدد ثابت هست و منطقه زمانی تاثیری روی timestamp نداره. شما اگر نوع date رو ذخیره کنید نهایتا باید timestamp اون تاریخ و ساعت تولید بشه و توابع مثلا مربوط به تاریخ شمسی، اونو تبدیل به تایم شمسی کنن، خب پس بهتره واحدی رو انتخاب کنیم که وابسته به هیچ منطقه ی زمانی نباشه و در همه جا، متر ثابتی داشته باشیم.(مخصوصا ما که با تاریخ شمسی سروکار داریم.)

* همچنین ذخیره ی یک عدد صحیح توی دیتابیس پرفورمنس بالاتری داره و جستجو رو مخصوصا بین دو تایم که از between استفاده میشه با سرعت بالاتری انجام میده.

 

کار با timestamp هم راحته. برای مثال اگر برای تبدیل به شمسی از JDF استفاده میکنید:

echo jdate('H:i:s | Y/n/j', $timestamp);
// ۱۰:۲۶:۵۳ | ۱۳۸۹/۱۱/۲۲

 

* توجه: مقدار timestamp رو تا سال ۲۰۳۸ میتونیم داخل ۳۲ بیت یعنی نوع integer ذخیره کنیم.بعد از ۲۰۳۸-۰۱-۱۹ سرریز میکنه.

محسن موحد ۰۲ اردیبهشت ۱۳۹۹، ۰۲:۲۹