اعتبار سنجی تاریخ در بازه زمانی مشخص با php
اعتبار سنجی تاریخ با php – در این آموزش قصد داریم یاد بگیریم که چطوری تاریخی که از کاربر دریافت می کنیم رو اعتبار سنجی کنیم که آیا معتبر هست یا نه ( البته در برای تاریخ میلادی خیلی ساده تر هست اما برای تاریخ جلالی فرق می کند )
سورس کد
نیازمند کتابخانه Jdf هست که در پایین لینک دانلود قرار داده شده است .
<?php function loadJDF() { if (!function_exists('jmktime')) require_once "jdf.php"; } function timestampToFaDate($timestamp, $format = "Y-m-d H:i:s", $digits = "en", $none = '', $timezone = 'Asia/Tehran') { loadJDF(); return jdate($format, $timestamp, $none, $timezone, $digits); } function validateByPersianDateInCustomRange($value) { $result = false; if (!$value || !is_string($value)) return $result; $date_parts = explode("/", $value); if (count($date_parts) != 3) return $result; foreach($date_parts as &$date_part){ if(!is_numeric($date_part)) return $result; $date_part = intval($date_part); } $unix = time(); // check year $currentYear = intval(timestampToFaDate($unix , "Y")); if (!(1300 <= $date_parts[0] && $date_parts[0] <= $currentYear)) return $result; // check month $currentMonth = intval(timestampToFaDate($unix , "m")); if (!(1 <= $date_parts[1] && $date_parts[1] <= 12)) return $result; if ($date_parts[0] == $currentYear) { if (!(1 <= $date_parts[1] && $date_parts[1] <= $currentMonth)) return $result; } // check day $currentDay = intval(timestampToFaDate($unix , "d")); if (!(1 <= $date_parts[2] && $date_parts[2] <= 31)) return $result; if ($date_parts[0] == $currentYear && $date_parts[1] == $currentMonth) { if (!(1 <= $date_parts[2] && $date_parts[2] <= $currentDay)) return $result; } $result = true; return $result; } // تاریخی که دارم اسکریپت رو چک می کنم 1402/6/1 var_dump(validateByPersianDateInCustomRange("1396/6/6")); // true var_dump(validateByPersianDateInCustomRange("1402/6/1")); // true var_dump(validateByPersianDateInCustomRange("1402/6/2")); // false ?>
دانلود سورس کد
ارسال نظر