در میان کارهای مختلف برنامه نویسی، دستکاری های مختلف با مقادیر تاریخ و زمان بسیار رایج است. یک سیستم خودکار نادر، یک پایگاه داده، می تواند بدون ذخیره اطلاعات مربوط به زمان یک فرآیند خاص، انجام دهد. علاوه بر افزودن ساده یک تاریخ به یک رکورد پایگاه داده یا نمایش این تاریخ، کارهای زیادی برای نمایش این تاریخ ها به اشکال مختلف، بررسی اینکه آیا زمان فعلی با یک تایمر معین مطابقت دارد یا خیر، محاسبه بازه زمانی بین دو تاریخ و موارد دیگر وجود دارد. .
برای راحتی کار با تاریخ ها، هر زبان برنامه نویسی انواع داده های خاص خود را برای ذخیره مقادیر تاریخ و زمان دارد. اغلب، این یک مقدار عددی است، یا یک عدد صحیح یا یک مقدار ممیز شناور.
در PHP، کار با تاریخ ها اغلب با UNIX TIMESTAMP مواجه می شود. در اینجا زمان به عنوان یک عدد صحیح ذخیره می شود. محاسبه زمان از 1 ژانویه 1970 شروع می شود. بنابراین، به عنوان مثال، تاریخ و زمان 12/11/2014 ساعت 7:40:00 بعد از ظهر با عدد 1418316000 نشان داده می شود. این رقم نشان می دهد که چند ثانیه از تاریخ صفر 1 ژانویه 1970 به نام عصر یونیکس می گذرد. .
نمونه ای از صفحه php که قابلیت تبدیل داده را فراهم می کند در قسمت برنامه ها توسط برنامه «تبدیل فرمت تاریخ و زمان» در سایت ارائه شده است. در اینجا می توانید تاریخ مورد نظر را در قالب UNIX TIMESTAMP تشکیل دهید و همچنین این قالب را به شکلی استاندارد و قابل خواندن توسط انسان بیاورید.
دریافت زمان و تاریخ فعلی در PHP
برای دریافت زمان فعلی سرور، از تابع استفاده کنید
int time (باطل)
که فقط مقدار را در قالب timestamp یونیکس برمی گرداند.
echotime(); // نمایش زمان فعلی در قالب timestamp یونیکس
در نگاه اول، این یک قالب خیلی راحت برای یک فرد نیست، اما، همانطور که می دانید، هرچه نمایش داده ها ساده تر باشد، پردازش این مقادیر توسط کامپیوتر سریعتر است. همچنین، ذخیره یک عدد در پایگاه داده بسیار مقرون به صرفه تر از هر فرمت خاصی است. همچنین، PHP در طول زمان به صورت یکسان در هر دو پلتفرم یونیکس و ویندوز کار می کند که استفاده از کد را در هر یک از این پلتفرم ها ممکن می سازد.
تبدیل فرمت تاریخ PHP
ساده ترین مکانیسم برای تبدیل یک مقدار تاریخ عددی به مقادیر قابل خواندن تر توسط تابع ارائه می شود:
آرایه getdate()
یک آرایه انجمنی حاوی اطلاعات تاریخ را برمی گرداند. اگر پارامتر مهر زمانی مشخص نشده باشد، اطلاعات زمان فعلی برگردانده می شود. این آرایه حاوی مقادیر زیر است:
آرایه به دست آمده به شما امکان می دهد مقادیر را به شکل دلخواه نمایش دهید:
$date = 1418372345;
$date_mas = getdate($date);
echo $date_mas["mday" ] . " . " . $date_mas["mon" ] . " . " . $date_mas["year"]; // 12.12.2014
همچنین می توانید از تابع برای تبدیل فرمت تاریخ و زمان استفاده کنید:
تاریخ رشته (رشته $template [, int $unix_timestamp])
برای دریافت مهر زمانی یونیکس تاریخ فعلی در قالب دلخواه طراحی شده است. پارامتر string $template فرمت خروجی را مشخص می کند. با پارامتر unix_timestamp $، می توانید تعیین کنید که با چه مقدار زمانی کار کنید. اختیاری است، بنابراین اگر آن را مشخص نکنید، از تاریخ و زمان فعلی استفاده خواهد شد.
فرمت با مقادیر زیر داده می شود:
آ | "قبل" و "بعد" ظهر: "آم" یا "بعد از ظهر" |
آ | "قبل" و "بعد از ظهر" با حروف بزرگ: "AM" یا "PM" |
د | روز ماه به صورت 2 رقمی (اگر کمتر از 10 باشد ابتدا صفر) (01 تا 31) |
دی | روز هفته در 3 حرف به عنوان مثال، "Mon" (دوشنبه) |
j | روز ماه، 1-2 رقم بدون صفرهای ابتدایی (از 1 تا 31) |
اف | نام ماه برای مثال، "ژانویه" |
ساعت | فرمت ساعت، 12 ساعت (01 تا 12) |
اچ | فرمت ساعت، 24 ساعت (00 تا 23) |
g | فرمت ساعتی 12 ساعته بدون صفر (از 1 تا 12) |
جی | فرمت ساعتی و 24 ساعته بدون صفر (0 تا 23) |
من | دقیقه (00 تا 59) |
I (بزرگ I) | 1 اگر ساعت تابستانی فعال است، 0 در غیر این صورت |
L | 1 اگر سال کبیسه است یا 0 اگر سال کبیسه نیست |
ب | زمان در قالب زمان اینترنت (زمان جایگزین روز) (000 تا 999) |
تی | منطقه زمانی کامپیوتر به عنوان مثال، MDT |
l (حروف کوچک L) | روز هفته. به عنوان مثال، "دوشنبه" |
متر | ماه، دو رقمی با صفر (01 تا 12) |
n | ماه، یک یا دو رقم بدون صفر (از 1 تا 12) |
م | نام اختصاری ماه مثلا "جان" |
تی | تعداد روز در ماه مشخص شده (از 28 تا 31) |
س | ثانیه (0 تا 59) |
اس | پسوند ترتیبی انگلیسی دو حرفی ("st"، "nd"، "rd" یا "th") |
U | تعداد صحیح ثانیه از آغاز دوره یونیکس |
y | سال، دیجیتال، 2 رقمی (14) |
Y | سال، دیجیتال، 4 رقمی (2014) |
z | عدد ترتیبی روز در سال (از 0 تا 365) |
ز | افست منطقه زمانی بر حسب ثانیه (43200- تا 43200) |
ن | شماره ترتیبی روزهای هفته از 1 (دوشنبه) تا 7 (یکشنبه) طبق استاندارد ISO-8601، (اضافه شده در PHP 5.1.0) |
w | شماره ترتیبی روزهای هفته از 0 (یکشنبه) تا 6 (شنبه) |
دبلیو | شماره سریال هفته سال مطابق با استاندارد ISO-8601؛ هفته ها از دوشنبه شروع می شوند (اضافه شده در PHP 4.1.0) |
o | شماره سال مطابق با استاندارد ISO-8601. همان معنای Y را دارد به جز زمانی که شماره هفته ISO (W) متعلق به سال قبل یا بعد باشد. سپس از سال آن هفته استفاده خواهد شد. (اضافه شده در PHP 5.1.0) |
ه | کد منطقه زمانی به عنوان مثال: UTC، GMT، Atlantic/Azores (اضافه شده در PHP 5.1.0) |
O | تفاوت با زمان گرینویچ، بر حسب ساعت. به عنوان مثال: +0200 |
پ | تفاوت با زمان گرینویچ با نقطه نقطه بین ساعت و دقیقه. به عنوان مثال: +02:00 (اضافه شده در PHP 5.1.3) |
ج | تاریخ در قالب ISO 8601. به عنوان مثال، 2014-12-12T15:19:21+00:00 (اضافه شده در PHP 5) |
r | تاریخ در قالب » RFC 2822. به عنوان مثال: پنجشنبه, 21 دسامبر 2000 16:01:07 +0200 |
U | تعداد ثانیه از شروع دوره یونیکس (عصر یونیکس، 1 ژانویه 1970، 00:00:00 GMT) |
همانطور که از لیست می بینید، با این تابع می توانید داده های تاریخ مفید زیادی را دریافت کنید. مثلا:
$date = 1418372345; // تاریخ و زمان اصلی 12/12/2014 11:19:05
echo date("d.m.Y" , $date); // 12/12/2014 (تاریخ)
echo date("H:i:s" , $date); // 11:19:05 (زمان)
echo date("H:i" , $date); // 11:19 (زمان)
echo date("t" , $date); // 31 (تعداد روز در ماه)
echo date("z" , $date); // 345 (شماره سریال روز در سال)
echo date("l dS \of F Y h:i:s A" , $date); // جمعه 12 آذر 1393 11:19:05 ق.ظ
سایر کاراکترهای موجود در الگو همانطور که در رشته است نمایش داده می شوند. اگر نیاز به وارد کردن کاراکتری دارید که به عنوان کد قالب در تابع استفاده می شود، یک کاراکتر "\" در جلوی آنها درج می شود. برای مقدار "\n" (نویسه خط جدید)، "\\n" باید مشخص شود. بنابراین، می توانید یک پیام کامل حاوی اطلاعات تاریخ و زمان را خروجی بگیرید:
تاریخ پژواک ( "امروز z-امین روز سال Y است"، $date)؛ // امروز سیصد و چهل و پنجمین روز سال 2014 است
تبدیل تاریخ و زمان به قالب مهر زمانی
برای تبدیل معکوس تاریخ از فرمت استاندارد به مقدار مهر زمانی عددی، از تابع استفاده کنید:
int mktime(]]]]]]
تابع mktime() مقدار زمانی یونیکس را مطابق با تاریخ و زمان ارائه شده توسط آرگومان ها برمی گرداند. مثلا:
$my_date = mktime(10، 30، 0، 12، 12، 2014)؛
باید مراقب ترتیب آرگومان های تابع باشید: ساعت، دقیقه، ثانیه، ماه، روز، سال.
علاوه بر ایجاد یک مقدار تاریخ در مهر زمانی، تابع mktime() می تواند برای انجام محاسبات با تاریخ ها استفاده شود. برای این کار به سادگی می توانید آرگومان های لازم را وارد کنید. به عنوان مثال، اگر ماه 14 را مشخص کنید، در مقدار نهایی، ماه دوم خواهد بود و ارزش سال یک افزایش می یابد:
$my_day = 12;
$my_month = 12;
$my_year = 2014;
$new_date = mktime(0, 0, 0, $my_month + 5, $my_day, $my_year);
echo date("d.m.Y" , $new_date); // 05/12/2015 (تاریخ)
شما می توانید همین کار را با سایر پارامترها انجام دهید.
اعتبارسنجی تاریخ در PHP
هنگام کار با تاریخ ها، به خصوص هنگام تشکیل تاریخ با استفاده از تابع mktime() که در بالا پیشنهاد شده است، لازم است صحت تاریخ وارد شده را در نظر بگیرید. برای انجام این کار، PHP از تابع زیر استفاده می کند:
تاریخ بررسی bool (ماه بینالمللی، روز بینالمللی، سال بینالمللی)
اگر تاریخ ارائه شده توسط آرگومان ها درست باشد، true را برمی گرداند. در غیر این صورت false را برمی گرداند. تاریخ در صورتی صحیح تلقی می شود که:
سال در محدوده 1 تا 32767;
ماه در محدوده 1 تا 12؛
روز ماه معین با احتساب سال کبیسه صحیح است.
مثال تایید تاریخ:
$my_day = 32;
$my_month = 12;
$my_year = 2014;
if (!checkdate ($my_month، $my_day، $my_year))
اکو "خطا: تاریخ نامعتبر";
جاوا اسکریپت در مرورگر شما مسدود شده است. اجازه دهید جاوا اسکریپت برای این سایت کار کند!
نمایش تاریخ و زمان
در سیستمهای توزیعشده مانند اینترنت، زمان از اهمیت بالایی برخوردار است. به دلیل اختلاف جزئی در ساعت سیستم، بازیکن فارکس می تواند ده ها هزار دلار را در عرض چند دقیقه از دست بدهد. سیستم هوش تجاری در پیش بینی اشتباه می کند. سرورهای NNTP اطلاعات مهم مورد نیاز کاربر را در طول فرآیند همگام سازی و غیره از دست خواهند داد.
PHP دارای توابع زیادی برای کار با تاریخ و زمان است. بیشترین استفاده ها عبارتند از:
- زمان()- زمان مطلق فعلی را برمی گرداند. این عدد برابر است با تعداد ثانیه هایی که از نیمه شب اول ژانویه 1970 (از آغاز عصر یونیکس) گذشته است.
- getdate()- اطلاعات تاریخ و زمان را می خواند. یک آرایه انجمنی حاوی اطلاعات برای زمان مشخص شده یا زمان فعلی (پیشفرض) را برمیگرداند. آرایه شامل عناصر زیر است:
مثال 1
استفاده از getdate() $val) echo "$key = $val
"؛ پژواک"
امروز: $d.$d.$d"؛ ?>نتیجه مثال 1:
ثانیه = 21 دقیقه = 4 ساعت = 12 روز = 10 روز = 4 دوشنبه = 11 سال = 2005 روز = 313 روز هفته = پنجشنبه ماه = نوامبر 0 = 1131613461 امروز: 11/10/2005
- تاریخ()- قالب بندی تاریخ و زمان آرگومان ها: رشته فرمت و زمان مطلق. آرگومان دوم اختیاری است. رشته ای را با تاریخ داده شده یا فعلی در قالب مشخص شده برمی گرداند. رشته فرمت می تواند حاوی کدهای زیر باشد:
آ آ نام "AM" یا "PM" گنجانده شده است د روز ماه (01-31) دی نام اختصاری روز هفته (سه حرف) اف نام ماه کامل g ساعت (قالب 12 ساعته بدون صفرهای ابتدایی) جی ساعت ها (قالب 24 ساعته بدون صفرهای ابتدایی) ساعت ساعت (فرمت 12 ساعت) اچ ساعت (فرمت 24 ساعته) من دقیقه (00-59) j روز ماه بدون صفرهای اول (1-31) ل نام کامل روز هفته L پرچم سال کبیسه (0 یا 1) متر ماه (01-12) م نام اختصاری ماه (سه حرف) n ماه (1-12) س ثانیه (00-59) تی تعداد روزهای یک ماه معین (از 28 تا 31) U زمان مطلق w y سال (دو رقمی) Y سال (چهار رقمی) z روز سال (0-365) ز افست منطقه زمانی بر حسب ثانیه (43200- تا 43200) هر اطلاعات دیگری که در رشته فرمت گنجانده شده است در رشته برگشتی درج می شود. اگر قرار است کاراکترهایی که خود کدهای قالب هستند به رشته قالب اضافه شوند، باید قبل از آنها علامت بک اسلش "\" قرار گیرد. قبل از نویسه هایی که با یک اسلش به کدهای قالب تبدیل می شوند باید دو اسلش داشته باشند. به عنوان مثال، اگر می خواهید "n" را به یک رشته اضافه کنید، باید "\\n" را تایپ کنید زیرا "\n" یک کاراکتر خط جدید است.
مثال 2
استفاده از date() نتیجه مثال 2:
امروز: 10.11.05 13:03
- mktime()- زمان مطلق را برمی گرداند، که سپس می تواند با توابع date() یا getdate() استفاده شود. حداکثر شش آرگومان عدد صحیح را به ترتیب زیر می گیرد:
ساعت
دقایق
ثانیه
ماه
روز ماه
سالمثال 3
استفاده از mktime() نتیجه مثال 3:
- تاریخ بررسی ()- بررسی صحت تاریخ استدلال ها: ماه، روز، سال. در صورتی که تاریخ معتبر باشد، true برمی گرداند.
ماه - یک عدد صحیح از 1 تا 12؛
روز - یک عدد صحیح که از تعداد کل روزها در ماه معین تجاوز نمی کند. در عین حال، سالهای کبیسه به درستی پردازش می شوند.
سال یک عدد صحیح از 1 تا 32767 است.مثلا:
اگر (!checkdate($month, 1, $year)) ($d = getdate(؛ $month = $d؛ $year = $d؛ )
توجه! تاریخ می تواند در محدوده معتبر باشد، اما سایر توابع تاریخ این مقدار را نمی پذیرند. بنابراین، نمیتوانید از mktime() برای سالهای قبل از 1902 استفاده کنید، و همچنین باید آن را برای سالهای قبل از 1970 با دقت استفاده کنید.
- strftime()- تشکیل تاریخ و زمان محلی آرگومان ها: رشته فرمت و زمان مطلق. آرگومان دوم اختیاری است. رشته ای را با تاریخ داده شده یا فعلی در قالب مشخص شده برمی گرداند. در این حالت، نام ماه ها و روزهای هفته از محلی که با استفاده از تابع انتخاب شده است استخراج می شود. رشته قالب می تواند حاوی کدهای زیر باشد:
٪آ مخفف روز هفته ٪آ نام کامل روز هفته %b نام مختصر ماه %B نام ماه کامل %c قالب ترجیحی تاریخ و زمان %C عدد قرن %d روز ماه (1-31) %D مثل %m/%d/%y %e ماه (1-12) %h مثل %b %H ساعت (فرمت 24 ساعته) ٪من ساعت (فرمت 12 ساعت) %j روز سال (0-365) %m ماه (1-12) %M دقایق %n کاراکتر خط جدید ٪پ نماد "am" یا "pm" گنجانده شده است %r زمان با استفاده از نماد a.m./p.m %R زمان در قالب 24 ساعته %S ثانیه (00-59) %t کاراکتر برگه %T مثل %H:%M:%S %u تعداد روزهای هفته (1 - دوشنبه، 7 - یکشنبه) %U شماره هفته شمارش معکوس از اولین یکشنبه سال شروع می شود % V شماره هفته طبق ISO 8601:1988. هفته اول باید حداقل چهار روز باشد و دوشنبه اولین روز در نظر گرفته می شود %W شماره هفته شمارش معکوس از اولین دوشنبه سال شروع می شود %w تعداد روزهای هفته (0 - یکشنبه، 6 - شنبه) ٪ایکس قالب تاریخ ترجیحی بدون زمان ٪ایکس قالب زمان ترجیحی بدون تاریخ %y سال (دو رقمی) %Y سال (چهار رقمی) %Z منطقه زمانی (نام یا مخفف) %% سمبل "٪" هر اطلاعات دیگری که در رشته فرمت گنجانده شده است در رشته برگشتی درج می شود.
بدیهی است که اغلب برنامه نویسان مجبورند با تاریخ و زمان کار کنید. ساده ترین مثال تاریخ و ساعت ارسال پیام در یک انجمن است. و البته، چنین چیزهایی را می توان در مورد تحقق بخشید PHP، به ویژه از فرصت های برای کار با تاریخ و زمان در PHPخیلی زیاد.
تابع پایه مرتبط با تاریخ و زمان در PHP، - این تابع time().، که تعداد ثانیه های سپری شده از آن زمان را برمی گرداند نیمه شب 01/01/1970(تولد یک دوران یونیکس):
echotime();
?>
با اجرای این اسکریپت متوجه می شوید که چند ثانیه از آن زمان گذشته است نیمه شب 01/01/1970تا تماس توابع ()timeدر فیلمنامه شما
البته علاوه بر این تابع اولیه که در تمامی زبان های برنامه نویسی وجود دارد، جایی که می توانید با تاریخ و زمان کار کنید(حداقل در میان کسانی که من می شناسم)، تابع دیگری به نام وجود دارد getdate():
$datetime = getdate();
foreach ($datetime به عنوان $k=>$v)
پژواک "$k - $v
";
?>
با اجرای این اسکریپت مجموعه ای از کلیدها در آرایه و مقادیر مربوط به آنها را مشاهده خواهید کرد (در همان زمان ساخت را تکرار کردیم. برای هر). من فکر می کنم که در حال حاضر برای شما دشوار نخواهد بود که اطلاعات مربوط به آن را پیدا کنید تاریخ و زمان. به عنوان مثال، برای نمایش زمان فعلی، کد زیر را بنویسید:
$datetime = getdate();
echo $datetime["ساعت"].":".$datetime["دقیقه"].":".$datetime["seconds"];
?>
همچنین در توابع getdate().یک پارامتر اختیاری وجود دارد که به معنی تعداد ثانیه های سپری شده از آن زمان است نیمه شب 01/01/1970. این کار به گونه ای ساخته شده است که این تابع می تواند نه تنها زمان و تاریخ فعلی را بازگرداند، بلکه به طور کلی، هر یک از موارد زیر را بازگرداند:
$datetime = getdate(152353232);
echo $datetime["year"];
?>
در نتیجه خواهید دید سال 1974سال
نیز وجود دارد تابع date().. توصیه میکنم به شرح آن در مرجع نگاه کنید، زیرا این تابع پارامتر بسیار پیچیدهای را میگیرد که فرمت خروجی تاریخ را تنظیم میکند. کمی بیش از 30 عنصر قالب بندی وجود دارد. و در مثال زیر چند مورد از آنها را می آورم و بقیه را در کتاب مرجع نگاه می کنم، زیرا نیازی به حفظ آنها نیست، اما آشنایی با آنها بسیار مطلوب است. و دانستن اصل استفاده از آنها ضروری است و مثال زیر در مورد آن است:
echo date ("Today d.m.Y H:i:s");
?>
در نتیجه چیزی شبیه به این خواهید دید: امروز 1389/11/15 21:44:24". همچنین توابع date()یک پارامتر اختیاری دوم نیز وجود دارد که مشخص می کند مهر زمانی، فقط مقدار برابر با تعداد ثانیه های سپری شده از آن زمان است نیمه شب 01/01/1970. مثالی از استفاده از پارامتر دوم:
echo date("Once there was d.m.Y H:i:s", 5393235329);
?>
نیز وجود دارد تابع gmdate().، که یک آنالوگ کامل است توابع date()، ولی تابع gmdate().زمان را نه بر اساس منطقه زمانی سروری که اسکریپت روی آن اجرا می شود، بلکه بر اساس آن نشان می دهد گرینویچ. بدیهی است که با استفاده از این تابع، شما باید تمام اطلاعات مربوط به تاریخ و ساعتی را که کاربر می بیند، ذخیره کنید و هنگام خروجی، باید با منطقه زمانی هر کاربر (البته در حالت ایده آل) سازگار شوید:
echo gmdate ("اکنون در گرینویچ D M j H:i:s T Y")
?>
در نتیجه چیزی شبیه به این خواهید دید: دوشنبه 15 نوامبر 18:52:45 GMT 2010البته، شما تاریخ متفاوتی را نمایش میدهید، اما در قالبی مشابه. همچنین اکیداً توصیه میکنم وارد فهرست راهنمای شوید و فقط با سایر عناصر تاریخ و زمان در آن آشنا شوید. PHP(من فقط یک سوم را دادم)، زیرا توابع date() و gmdate().ساده ترین و سریع ترین راه است تاریخ و زمان را دریافت کنیدتقریبا در هر قالبی
در سیستم های توزیع شده زمان نقش ویژه ای دارد. به دلیل اختلاف جزئی در ساعت سیستم، یک بازیکن فارکس می تواند هزاران دلار ضرر کند.
تاریخ و زمان PHP
در سیستمهای توزیعشده مانند اینترنت، زمان از اهمیت بالایی برخوردار است. به دلیل اختلاف جزئی در ساعت سیستم، بازیکن فارکس می تواند ده ها هزار دلار را در عرض چند دقیقه از دست بدهد. سیستم هوش تجاری در پیش بینی اشتباه می کند. سرورهای NNTP اطلاعات مهم مورد نیاز کاربر را در طول فرآیند همگام سازی و غیره از دست خواهند داد. PHP دارای توابع زیادی برای کار با تاریخ و زمان است. بیشترین استفاده ها عبارتند از:
- زمان مطلق فعلی را برمی گرداند. این عدد برابر است با تعداد ثانیه هایی که از نیمه شب اول ژانویه 1970 (از آغاز عصر یونیکس) گذشته است.
- اطلاعات تاریخ و زمان را می خواند. یک آرایه انجمنی حاوی اطلاعات برای زمان مشخص شده یا زمان فعلی (پیشفرض) را برمیگرداند. آرایه شامل عناصر زیر است:
مثال 1
" ; اکو "
امروز: $d .$d .$d "; ?>
نتیجه 1
ثانیه = 21 دقیقه = 4 ساعت = 12 روز = 10 روز = 4 دوشنبه = 11 سال = 2005 روز = 313 روز هفته = پنجشنبه ماه = نوامبر 0 = 1131613461 امروز: 10/11/2005
- قالب بندی تاریخ و زمان آرگومان ها: رشته فرمت و زمان مطلق. آرگومان دوم اختیاری است. رشته ای را با تاریخ داده شده یا فعلی در قالب مشخص شده برمی گرداند. رشته فرمت می تواند حاوی کدهای زیر باشد:
آ | |
آ | نام "AM" یا "PM" گنجانده شده است |
د | روز ماه (01-31) |
دی | نام اختصاری روز هفته (سه حرف) |
اف | نام ماه کامل |
g | ساعت (قالب 12 ساعته بدون صفرهای ابتدایی) |
جی | ساعت ها (قالب 24 ساعته بدون صفرهای ابتدایی) |
ساعت | ساعت (فرمت 12 ساعت) |
اچ | ساعت (فرمت 24 ساعته) |
من | دقیقه (00-59) |
j | روز ماه بدون صفرهای اول (1-31) |
ل | نام کامل روز هفته |
L | پرچم سال کبیسه (0 یا 1) |
متر | ماه (01-12) |
م | نام اختصاری ماه (سه حرف) |
n | ماه (1-12) |
س | ثانیه (00-59) |
تی | تعداد روزهای یک ماه معین (از 28 تا 31) |
U | زمان مطلق |
w | |
y | سال (دو رقمی) |
Y | سال (چهار رقمی) |
z | روز سال (0-365) |
ز | افست منطقه زمانی بر حسب ثانیه (43200- تا 43200) |
هر اطلاعات دیگری که در رشته فرمت گنجانده شده است در رشته برگشتی درج می شود. اگر میخواهید کاراکترهایی را که خود کدهای قالببندی هستند به رشته قالب اضافه کنید، قبل از آنها علامت بک اسلش «\» قرار دهید. قبل از نویسه هایی که با یک اسلش به کدهای قالب تبدیل می شوند باید دو اسلش داشته باشند. به عنوان مثال، اگر می خواهید "n" را به یک رشته اضافه کنید، باید "\\n" را تایپ کنید زیرا "\n" یک کاراکتر خط جدید است.
مثال 2
نتیجه 2
امروز: 10. 11. 05 13: 03
- زمان مطلق را برمی گرداند، که سپس می تواند با توابع استفاده شود تاریخ() getdate(). حداکثر شش آرگومان عدد صحیح را به ترتیب زیر می گیرد:
- دقایق
- ثانیه
- ماه
- ماه ها
مثال 3
نتیجه 3
- بررسی کنید که آیا تاریخ درست است. استدلال ها: ماه، روز، سال. در صورتی که تاریخ معتبر باشد، true برمی گرداند.
- ماه یک عدد صحیح از 1 تا 12 است.
- روز یک عدد صحیح کوچکتر یا مساوی با تعداد کل روزهای ماه داده شده است. در عین حال، سالهای کبیسه به درستی پردازش می شوند.
- سال یک عدد صحیح از 1 تا 32767 است.
مثال 4
if ( ! checkdate ( $month , 1, $year ) ) ($d = getdate () ; $month = $d [ دوشنبه] ; $year = $d [ سال] ; )
توجه! تاریخ می تواند در محدوده معتبر باشد، اما سایر توابع تاریخ این مقدار را نمی پذیرند. بله، نمی توانید استفاده کنید mktime()برای سال های قبل از 1902، و همچنین باید با احتیاط برای سال های قبل از 1970 استفاده شود.
- تشکیل تاریخ و زمان محلی آرگومان ها: رشته فرمت و زمان مطلق. آرگومان دوم اختیاری است. رشته ای را با تاریخ داده شده یا فعلی در قالب مشخص شده برمی گرداند. در این حالت، نام ماه ها و روزهای هفته از محلی که با استفاده از تابع انتخاب شده است استخراج می شود setlocate()
رشته فرمت می تواند حاوی کدهای زیر باشد:
٪آ | مخفف روز هفته |
٪آ | نام کامل روز هفته |
%b | نام مختصر ماه |
%B | نام ماه کامل |
%c | قالب ترجیحی تاریخ و زمان |
%C | عدد قرن |
%d | روز ماه (1-31) |
%D | مثل %m/%d/%y |
%e | ماه (1-12) |
%h | مثل %b |
%H | ساعت (فرمت 24 ساعته) |
٪من | ساعت (فرمت 12 ساعت) |
%j | روز سال (0-365) |
%m | ماه (1-12) |
%M | دقایق |
%n | کاراکتر خط جدید |
٪پ | نام "am" یا "pm" گنجانده شده است |
%r | زمان با استفاده از نماد a.m./p.m |
%R | زمان در قالب 24 ساعته |
%S | ثانیه (00-59) |
%t | کاراکتر برگه |
%T | مثل %H:%M:%S |
%u | تعداد روزهای هفته (1 - دوشنبه، 7 - یکشنبه) |
%U | شماره هفته شمارش معکوس از اولین یکشنبه سال شروع می شود |
% V | شماره هفته طبق ISO 8601:1988. هفته اول باید حداقل چهار روز باشد و دوشنبه اولین روز در نظر گرفته می شود |
%W | شماره هفته شمارش معکوس از اولین دوشنبه سال شروع می شود |
%w | تعداد روزهای هفته (0 - یکشنبه، 6 - شنبه) |
٪ایکس | قالب تاریخ ترجیحی بدون زمان |
٪ایکس | قالب زمان ترجیحی بدون تاریخ |
%y | سال (دو رقمی) |
%Y | سال (چهار رقمی) |
%Z | منطقه زمانی (نام یا مخفف) |
%% | سمبل "٪" |
هر اطلاعات دیگری که در رشته فرمت گنجانده شده است در رشته برگشتی درج می شود.
مثال 5
" ) ؛ error_reporting (E_ALL & ~E_WARNING) ; setlocale("LC_ALL" , "" ); echo strftime ("امروز %A است %d %B %Y %X
" ) ؛ echo strftime("%Z
" ) ; ?>
بیایید به یک قطعه کد از یک صفحه وب واقعی نگاه کنیم و اولین اسکریپت php خود را ایجاد کنیم، یعنی تاریخ و زمان فعلی را در سایت خود نمایش دهیم. این سناریو اغلب در سایت ها استفاده می شود و فکر می کنم برای بسیاری مفید باشد.
بیایید یک فایل php دیگر ایجاد کنیم و نام این فایل را time.php بگذاریم. ما قبلا مطالعه کردیم، اگر فراموش کردید، تکرار کنید.
بنابراین ما فایل time.php را ایجاد کردیم و این فایل را در پوشه myphp که قبلا ایجاد شده بود قرار دادیم. ما این موضوع را در درس مطالعه کردیم
کد فایل time.php و بین تگ ها را باز کنید
وکد زیر را بنویسید فهرست 1:فهرست 1.
امروز: |
ما سرور محلی را راه اندازی می کنیم، آدرس را در نوار آدرس مرورگر تایپ می کنیم http://localhost/myphp/time.phpو Enter را فشار دهید. و ما این تصویر را می بینیم:
توجه شما را به این نکته جلب می کنم که در این حالت زمان سرور فعلی نمایش داده می شود.آن ها اگر، برای مثال، سروری که سایت شما در آن "زندگی می کند" در کشور دیگری قرار دارد و زمان فعلی با مسکو متفاوت است، مقدار زمانی نمایش داده شده نیز با مسکو متفاوت خواهد بود.
بیایید کد را تجزیه کنیم فهرست کردن 1. نوشته های متنی منظم " امروز"و" زمان فعلی" توسط پیش پردازنده PHP پردازش نمی شوند و به صورت "is" نمایش داده می شوند. به جای این ورودی ها، می توانید هر متنی را بنویسید، برای مثال، تاریخیا زمانو غیره.
و در اینجا کد php محصور در توصیفگرها استقبل از اینکه به مرورگر داده شود، توسط PHP پردازش می شود.
همانطور که احتمالاً قبلاً تابع تاریخ در PHP را درک کرده اید مسئول نمایش تاریخ و زمان. پرانتز مقادیر نمایش تاریخ و زمان را نشان می دهد. مقادیر زیادی از این قبیل در PHP وجود دارد و ما درس جداگانه بعدی را به این تحلیل و مطالعه تمام مقادیر ممکن اختصاص خواهیم داد.
عبارت echo - به عنوان ترجمه می شود کنار کشیدن، در این مورد به معنای نمایش بر روی صفحه نمایشگر است تاریخو زمان سرور.
همین نتیجه (نمایش مرورگر) را می توان با قرار دادن کل اسکریپت در داخل تگ های PHP به دست آورد. دیدن لیست 2:
لیست 2.
echo "امروز:" ; |
تمام عناصر متنی که برای خروجی در نظر گرفته شده اند باید در علامت نقل قول قرار داده شوند. رشته های متنی را می توان در یک یا دو گیومه قرار داد که بعداً در مورد آنها صحبت خواهیم کرد. ورودی های:
پژواک "امروز" ;
پژواک "امروز" ;
کاملاً معادل هستند و به همین ترتیب نمایش داده می شوند.
کاراکتر فاصله قبل از نقل قول بسته برای جدا کردن خروجی تابع تاریخ از متن اطراف استفاده می شود. همه دستورات در PHP همیشه با یک نقطه ویرگول از هم جدا می شوند.
برای نمایش تاریخ و زمان در سایت، کد را جایگزین کنید فهرست 1یا لیست 2به مکان مناسب در صفحه وب خود. برای دادن سبک کلی به کتیبه ها (تاریخ و ساعت) برای طراحی سایت می توانید استفاده کنید.
P.S. به شما یادآوری میکنم که فایلی که درجهای PHP را در آن قرار میدهید باید پسوند php. داشته باشد و علاوه بر این، میزبانی که سایت شما در آن "زندگی میکند" باید از PHP پشتیبانی کند (امروزه تقریباً تمام این موارد است.