PDA

View Full Version : آموزش: تبدیل تاریخ میلادی به تاریخ شمسی



darkcms
جمعه 15 شهریور 1392, 11:23 صبح
با سلام و درود.
من یک کد برای انجام این کار نوشته ام که این جا برای شما قرار می دهم :

<?php
date_default_timezone_set('Asia/Tehran');

function plus($year){
return $year%4 == 0 && ($year%100 != 0 || $year%400 == 0)? 1 : 0;
}
function year($year, $month, $day){

if($month < 4 && $day < 21 - plus($year)) return $year - 622;

else return $year - 621;
}
function month($year, $month, $day){

$condition=array(21, 20, 21, 21, 22, 22, 23, 23, 23, 23, 22, 22);

$month_first=array(10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9);

$month_second=array(11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

if($day < $condition[$month - 1] - plus($year)) return $month_first[$month - 1];

else return $month_second[$month - 1];
}
function day($year, $month, $day){

$condition=array(21,20,21,21,22,22,23,23,23,23,22, 22);

$plus=array(10,11,9,11,10,10,9,9,9,8,9,9);

if($day < $condition[$month - 1] - plus($year)) return $day + $plus[$month - 1] + plus($year);
else return $day - $condition[$month - 1] + 1 + plus($year);
}
function day_name($date){
return str_replace(array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'), array('یکشنبه', 'دوشنبه', 'سه شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'), $date);
}
?>
ساختار این توابع کاملا با توابعی که تاکنون برای انجام این کار ساخته شده اند فرق می کند!
در این کد چهار تابع وجود دارد.
توابع :

year(date('Y'),date('m'),date('d'))

month(date('Y'),date('m'),date('d'))

day(date('Y'),date('m'),date('d'))

day_name(date('D'))
هر سه تابع اول به ترتیب سه ورودی سال ، ماه و روز میلادی را می پذیرند.
برای قرار دادن سال شمسی در وبسایتتان کافی است از روش زیر عمل کنید :

echo year(date('Y'),date('m'),date('d'))
و به همین ترتیب برای قرار دادن ماه شمسی از کد زیر بهره گیرید :

echo month(date('Y'),date('m'),date('d'))
و همچنین روز شمسی :

echo day(date('Y'),date('m'),date('d'))
تابع چهارم نیز به این روش استفاده می شود :

echo day_name(date('D'))
تابع چهارم نام روز هفته را بر می گرداند. مثال : چهارشنبه
امیدوارم این کد به کار دوستانمان بیاید!
به امید فردایی بهتر!:لبخندساده: