تابع Date

abbasjoon

Member
سلام بچه ها. من مي خوام بدونم چه طوري مي تونم كه يه تاريخي معين كنم كه ثبت نام تا اون تاريخ و ساعت مشخصي به پايان برسه.
از دو تا متغير استفاده كردم و با if چك كردمش ولي كار نكرد. ( if ($cydate<=$mdate بايد چيكار كنم؟ حالا اگه اين درست بشه ديگه نيازي نيست كه ساعت هم چك بشه درسته؟ چون ساعت وقتي 24 بشه خودش ميره روز بعد.
لطفا كمكم كنين
 

30noohe

Member
من از یه روش استفاده می کنم که زیاد دقیق نیست ولی می تونی خودت دقیقش کنی
اول ساعت امروز رو به روز تبدیل کن یعنی سال رو که گرفتی * 365 کن و ماه رو * 30 کن و اون ها رو + تعداد روز ها کن .این اطلاع رو در یه متغیر ذخیره کن . بعد همین کار رو برای تاریخ ثبت نام کن و در آخر این 2 رو از هم کم کن و بعد با چند تا دستور if ککارت راه می افته
 

abbasjoon

Member
اين كه شما ميگي درسته ولي روش ساده تري هم بايد باشه يعني براي مقايسه دو متغير Date حتما بايد همه اين كارهارو انجام داد؟
 

tabib_m

Member
نه ، نمیخوات
PHP:
$now=time();
$registerDate=mktime(10,10,10,9,9,2007);

if($now<=$registerDate){
	//register codes
}else{
	echo "متأسفانه مهلت ثبت نام تمام شده است.";
}
 

abbasjoon

Member
مرسي اين خيلي باحال بود. اگه ميشه element هاي تابع mktime رو برام توضيح مي دي چي هستند و به جاشون بايد چيرو بزارم؟
 

abbasjoon

Member
سلام. يه سوال ديگه. من با فرمت "$sy.$sm.$sd" يك تاريخ رو توي بانك اطلاعاتي ذخيره كردم. حالا مي خوام اين تاريخ رو بيرون بكشم و توي تابع mktime استفاده كنم. ولي وقتي مثلا بخش سال اين تاريخ رو با دستور $cydate=$expireddate("y") مي خوام بيرون بكشم بهم ارور مي ده. فكر كنم فقط با تابع DATE ميشه چنين كاري كرد. مي خوام بدونم چه جوري ميشه اجزاء يك تاريخ ذخيره شده در متغير رو بدست آورد. با تشكر فراوان از همه دوستان
 

tabib_m

Member
اگه ميشه element هاي تابع mktime رو برام توضيح مي دي چي هستند و به جاشون بايد چيرو بزارم؟

mktime

وقتي مثلا بخش سال اين تاريخ رو با دستور $cydate=$expireddate("y") مي خوام بيرون بكشم بهم ارور مي ده.
میشه بگید این چه دستوریه؟!؟ جلوی متغیر که از پرانتز استفاده نمیشه که! (البته ممکنه در شرایطی خاص استفاده بشه!) خوب معلومه که باید ارور بده!

مي خوام بدونم چه جوري ميشه اجزاء يك تاريخ ذخيره شده در متغير رو بدست آورد.
خوب اگه مثلا فرمتی که توی دیتابیس ذخیره کردی اینجوریه YYYYMMDD خوب اینجوری میتونی جداش کنی:
کد:
$year=[URL="http://www.php.net/manual/en/function.substr.php"]substr[/URL]($theDate,0,4);
$mon=[URL="http://www.php.net/manual/en/function.substr.php"]substr[/URL]($theDate,4,2);
$day=[URL="http://www.php.net/manual/en/function.substr.php"]substr[/URL]($theDate,6,2);

موفق باشید.
 

abbasjoon

Member
مرسي آقا تبيب. خيلي ممنون كه بهم كمك مي كني. يه چيز ديگه من هر چي ساعت و تاريخ سيستم رو تغيير مي دم بازم تابع mktime كار خودش رو مي كنه و اين تغيير ساعت رو شناسايي نمي كنه. بعد از تغيير ساعت سيستم حتما بايد restart بشه؟
 

I.NoBody

Active Member
من هر چي ساعت و تاريخ سيستم رو تغيير مي دم بازم تابع mktime كار خودش رو مي كنه و اين تغيير ساعت رو شناسايي نمي كنه. بعد از تغيير ساعت سيستم حتما بايد restart بشه؟
دوست عزیز، php مثل JavaScript از ساعت سیستم کاربر استفاده نمی کنه. بلکه از ساعت سرور استفاده می کنه. شما اگه می خوای ساعت رو عوض کنی، یا باید دسترسی به ساعت سرور داشته باشی یه اینکه بعد از گرفتن تاریخ، باید توسط چند خط کد، عوضش کنی
 

abbasjoon

Member
من رو لوكال سايت رو طراحي مي كنم. منظورم تاريخ و ساعت همين سرور مجازي خودمه . هر چي عوضش مي كنم هيچ تغييري در برنامه انجام نمي شه
 

abbasjoon

Member
سلام بچه ها. بالاخره mktime عمل كرد ولي هنوز تنظيم نيست. مقدارهاي مختلف دادم به تابع و با تابع time مقايسه كردم فهميدم كه تابع mktime چهار ساعت و بيست دقيقه عقب تر عمل مي كنه. كسي ميدونه مشكل كجاست؟
 

tabib_m

Member
البته اینجوری هم میتونی مطمئن بشی که درست عمل میکنه یا نه:
PHP:
$a=time();

$date=date("Y-m-d-H-i-s");
list($year,$mon,$day,$hour,$min,$sec)=explode("-",$date);

$b=mktime($hour,$min,$sec,$mon,$day,$year);

echo $a."<br>";
echo $b;
ببین نتیجه چی میشه.


موفق باشید.
 

جدیدترین ارسال ها

بالا