leberman
پنج شنبه 07 شهریور 1392, 12:15 عصر
درود
من از یک اسکریپت برای سایتم استفاده میکنم و متاسفانه با زبان PHP هم زیاد کارنکردم و مبتدی هستم.
یه تابع برای تاریخ و زمان سایتم استفاده شده که من میخوام به شمسی تبدیلش کنم کدش رو میزارم اینجا اگر دوستان کمک کنن ممنون میشم.
function get_date($date, $format = "date")
{
global $SESSION, $LANG;
if ( $format == "human" ) {
$now = time();
$now_day = date("j", $now);
$now_month = date("n", $now);
$now_year = date("Y", $now);
$time_day = date("j", $date);
$time_month = date("n", $date);
$time_year = date("Y", $date);
$time_since = "";
switch (1)
{
case ( $now-$date < 60 ): // seconds
$seconds = $now-$date;
$time_since = $seconds;
$str = str_replace('%time%', $time_since, $LANG['core']['date_seconds']);
break;
case ( $now-$date < 3600 ): // minutes (60)
$minutes = round(($now-$date)/60);
$time_since = $minutes;
$str = str_replace('%time%', $time_since, $LANG['core']['date_minutes']);
break;
case ( $now-$date < 86400 ): // hours (24)
$hours = round(($now-$date)/3600);
$time_since = $hours;
$str = str_replace('%time%', $time_since, $LANG['core']['date_hours']);
break;
case ( $now-$date < 172800 ): // yesterday
$hours = round(($now-$date)/3600);
$time_since = $hours;
$str = $LANG['core']['date_yesterday'];
break;
case ( $now-$date < 1209600 ): // days (14)
$days = round(($now-$date)/86400);
$time_since = $days;
$str = str_replace('%time%', $time_since, $LANG['core']['date_days']);
break;
case ( $now-$date < 4233600 ): // weeks (5)
$weeks = round(($now-$date)/604800);
$time_since = $weeks;
$str = str_replace('%time%', $time_since, $LANG['core']['date_weeks']);
break;
case ( $now-$date < 47520000 ): // months (18)
$time_since = round(($now-$date)/2628000);
$str = str_replace('%time%', $time_since, $LANG['core']['date_months']);
break;
default: // years
if ( $now_month < $time_month ) {
$subtract = 1;
}
elseif ( $now_month == $time_month ) {
if ( $now_day < $time_day ) {
$subtract = 1;
}
else {
$subtract = 0;
}
}
else {
$subtract = 0;
}
$years = $now_year-$time_year-$subtract;
$time_since = $years;
$str = str_replace('%time%', $time_since, $LANG['core']['date_years']);
if ( $years == 0 ) {
$time_since = "";
$lang_var = 0;
}
break;
}
}
else
{
$diff = $SESSION->conf['timezone']*60;
$date = $date - (date("Z") - $diff) + (date("I") ? 3600 : 0);
if ( $format == "date" ) {
$format = $SESSION->conf['timeformat'] ? "m/d/Y" : "d/m/Y";
}
elseif ( $format == "time" ) {
$format = $SESSION->conf['timeformat'] ? "h:i a" : "H:i";
}
elseif ( $format == "rss" ) {
$format = "r";
}
elseif ( $format == "full" ) {
$format = $SESSION->conf['timeformat'] ? "m/d/Y h:i a" : "d/m/Y H:i";
}
$str = date($format, $date);
}
return $str;
}
من از یک اسکریپت برای سایتم استفاده میکنم و متاسفانه با زبان PHP هم زیاد کارنکردم و مبتدی هستم.
یه تابع برای تاریخ و زمان سایتم استفاده شده که من میخوام به شمسی تبدیلش کنم کدش رو میزارم اینجا اگر دوستان کمک کنن ممنون میشم.
function get_date($date, $format = "date")
{
global $SESSION, $LANG;
if ( $format == "human" ) {
$now = time();
$now_day = date("j", $now);
$now_month = date("n", $now);
$now_year = date("Y", $now);
$time_day = date("j", $date);
$time_month = date("n", $date);
$time_year = date("Y", $date);
$time_since = "";
switch (1)
{
case ( $now-$date < 60 ): // seconds
$seconds = $now-$date;
$time_since = $seconds;
$str = str_replace('%time%', $time_since, $LANG['core']['date_seconds']);
break;
case ( $now-$date < 3600 ): // minutes (60)
$minutes = round(($now-$date)/60);
$time_since = $minutes;
$str = str_replace('%time%', $time_since, $LANG['core']['date_minutes']);
break;
case ( $now-$date < 86400 ): // hours (24)
$hours = round(($now-$date)/3600);
$time_since = $hours;
$str = str_replace('%time%', $time_since, $LANG['core']['date_hours']);
break;
case ( $now-$date < 172800 ): // yesterday
$hours = round(($now-$date)/3600);
$time_since = $hours;
$str = $LANG['core']['date_yesterday'];
break;
case ( $now-$date < 1209600 ): // days (14)
$days = round(($now-$date)/86400);
$time_since = $days;
$str = str_replace('%time%', $time_since, $LANG['core']['date_days']);
break;
case ( $now-$date < 4233600 ): // weeks (5)
$weeks = round(($now-$date)/604800);
$time_since = $weeks;
$str = str_replace('%time%', $time_since, $LANG['core']['date_weeks']);
break;
case ( $now-$date < 47520000 ): // months (18)
$time_since = round(($now-$date)/2628000);
$str = str_replace('%time%', $time_since, $LANG['core']['date_months']);
break;
default: // years
if ( $now_month < $time_month ) {
$subtract = 1;
}
elseif ( $now_month == $time_month ) {
if ( $now_day < $time_day ) {
$subtract = 1;
}
else {
$subtract = 0;
}
}
else {
$subtract = 0;
}
$years = $now_year-$time_year-$subtract;
$time_since = $years;
$str = str_replace('%time%', $time_since, $LANG['core']['date_years']);
if ( $years == 0 ) {
$time_since = "";
$lang_var = 0;
}
break;
}
}
else
{
$diff = $SESSION->conf['timezone']*60;
$date = $date - (date("Z") - $diff) + (date("I") ? 3600 : 0);
if ( $format == "date" ) {
$format = $SESSION->conf['timeformat'] ? "m/d/Y" : "d/m/Y";
}
elseif ( $format == "time" ) {
$format = $SESSION->conf['timeformat'] ? "h:i a" : "H:i";
}
elseif ( $format == "rss" ) {
$format = "r";
}
elseif ( $format == "full" ) {
$format = $SESSION->conf['timeformat'] ? "m/d/Y h:i a" : "d/m/Y H:i";
}
$str = date($format, $date);
}
return $str;
}