PDA

View Full Version : زمان بندي انتشار مطالب



maryam.tadayon
شنبه 21 دی 1392, 17:02 عصر
سلام
دوستان لطفا در سوال زير به بنده روش اجرا بديد نمي دونم به چه روش پياده سازي بشه
-
من مي خوام كاربرام وقتي وارد سيستم شدند و خواستند مطلبي در آرشيو ارسال كنند بتونند از شنبه تا تا جمعه از ساعت 10 صبح تا 10 در بازه هاي زماني 30 دقيقه 30دقيقه زمان انتشار مطالب خود رو تعيين كنند
براي مثال اگر كاربري دوشنبه ساعت 10:30 دقيقه زمان را تعيين كرد كاربر بعدي نتونه اين زمان را انتخاب كنه
-
حالا چه راه حل هاي منطقي و اجرايي رو مي تونم داشته باشم؟
ممنون ميشم راهنمايي كنيد

MRmoon
شنبه 21 دی 1392, 17:42 عصر
خوب نگا كربر زمان انتشار مطلب رو تنمظيم ميكنه.

مثلا


2014-01-11 10:30:00خوب اولا يه match مي زني ببيني از اين ساختار


xxxx-xx-xx xx:xx:xxپيروي مي كنه يا نه.

حالا بايد اينو به ثانيه تبديل كني

strtotime("2014-01-11 10:30:00")

بعد چك مي كني چك مي كني در بازه ي زماني 30 دقيقه هست يا نه. يعني دقيقه يا بايد 00 باشه يا 30 :لبخندساده:

حالا چك مي كني اين زمان تو ديتابيس هست يا نه.

اگه بود كه مي گي اين زمان رو گرفتن :لبخند:اگر نه هم كه ديگه هيچي :لبخند:

اين فقط يه راه حل بود.

مثال‌:

<?php

//$Input = $_POST['date'];
$Input = "2014-01-11 10:30:00";
if(! preg_match("#[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}#", $Input)) {
die("Date pattern is xxxx-xx-xx xx:xx:xx !");
}

$toTime = strtotime($Input);

$minute = date("i" , $toTime);
$seconde = date("s" , $toTime);

if($seconde !== "00") {
die("Invalid secode. Secode must be zero!");
}

if($minute !== "00" && $minute !== "30") {
die("You can set posts send time in each 30 minute!");
}
// Get this var from database.
$storedDates = [
"2014-01-11 10:00:00" ,
"2014-01-11 11:30:00" ,
"2014-02-11 11:30:00" ,
];

if(in_array($Input, $storedDates)) {
die("Oh sorry! this date exists!");
}

die("Post sent successfully!");]