PDA

View Full Version : حرفه ای: انجام عملیات خاص بین دو تاریخ تعریف شده



reza10wert
شنبه 29 مهر 1391, 22:45 عصر
سلام
من میخواهم مثلا بین این دو تاریخ اجازه دسترسی کاربر به صفحه ای خاص رو نده

هر هفته شنبه ساعت 6 صبح تا دو شنبه ساعت 22:30:45

باید چه کنم ؟

Unique
یک شنبه 30 مهر 1391, 02:12 صبح
شما باید روز جاری هفته را با استفاده از کاراکتر N بگیری (دوشنبه 1 , یکشنبه 7) بعد تعداد روز تا شنبه قبلش را + زمان گذشته از امروز را ازش کم کنید تا ساعت 0 شنبه بدست بیاد حالا خیلی راحت دو تاریخی که میخوای را بدست میاری.

reza10wert
یک شنبه 30 مهر 1391, 07:31 صبح
میشه نمونه کد بذارید ؟
بعد چرا دوشنبه اول هفته هست ؟
نمیشه کاری کرد که شنبه اول هفته بشه ؟

reza10wert
یک شنبه 30 مهر 1391, 18:09 عصر
کسی نیست کمک کنه

Unique
دوشنبه 01 آبان 1391, 04:51 صبح
به عنوان یک دوست یک راهنمایی را از من بپذیر ! اگه 2 یا چند روز وقت میگذاشتی و از ایده من استفاده میکردی و کار را انجام میدادی به طور حتم در زمینه تاریخ و زمان در php استاد میشدین !
الان ساعت 5 صبحه و منم خیلی خسته ام اما این کد حتما بهت درست نتیجه میده ، توضیحش اینکه توی این مسائل یکی از تاریخ ها را بدست بیار و دومی را از روی اون حساب کن اینطوری :


date_default_timezone_set('Asia/Tehran');
$cur_day = intval(date('N'));

if ($cur_day == 1)
$end_date = strtotime(date("Y-m-d 22:30:45"));

if ($cur_day > 1)
$end_date = strtotime(date("next monday")) + 81045;

$start_date = $end_date - (81045 + 151200);

echo "Start : ".date("Y-m-d H:i:s",$start_date)." | End : ".date("Y-m-d H:i:s",$end_date);

//81045 = 22:30:45
//151200 = 24H + 18H

reza10wert
دوشنبه 01 آبان 1391, 08:12 صبح
من زیاد حرفه ای نیستم
میشه در مورد کدها توضیح بدید که هر کدوم چه میکنه ؟

ممنون میشم . خدا خبرت بده

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

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

Unique
سه شنبه 02 آبان 1391, 02:26 صبح
دوست عزیز اینها خیلی راحت هستند ! نمیدونم چی را توضیح بدم ! شما بگین کجاش را متوجه نمیشین !

reza10wert
سه شنبه 02 آبان 1391, 06:44 صبح
این اعداد چی هستند ؟

81045 و 151200

این شرط را برای چی گذاشتی ؟
if ($cur_day == 1)

Unique
چهارشنبه 03 آبان 1391, 03:29 صبح
81045 ثانیه یعنی 22 ساعت 30 دقیقه و 45 ثانیه ! در واقع این را اضافه میکنم که 22:30:45 که شما گفتی برای دوشنبه بدست بیاد !
151200 هم معادل یک روز و 18 ساعت قبله تا به ساعت 6 صبح شنبه برسیم !


if ($cur_day == 1)
این شرط هم برای این هستش که اگه روز جاری دوشنبه بود خودش را استفاده کنیم و در شرط دوم اگه نبود دوشنبه بعدی را پیدا کنید ! اینطوری هم میشه نوشت :

if ($cur_day == 1)
$end_date = strtotime(date("Y-m-d 22:30:45"));
else
$end_date = strtotime(date("next monday")) + 81045;

reza10wert
پنج شنبه 04 آبان 1391, 09:59 صبح
اگر بخواهم تعریف کنم که مثلا هر هفته ساعت 12 چهارشنبه تا ساعت 22 پنجشنبه باید چه کنم؟

Unique
جمعه 05 آبان 1391, 03:23 صبح
date_default_timezone_set('Asia/Tehran');
$cur_day = intval(date('N'));

if ($cur_day == 4)
$end_date = strtotime(date("Y-m-d 22:00:00"));
else
$end_date = strtotime(date("next thursday")) + 79200;

$start_date = $end_date - (79200 + 43200);

echo "Start : ".date("Y-m-d H:i:s",$start_date)." | End : ".date("Y-m-d H:i:s",$end_date);

//79200 = 22H
//43200 = 12H