Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 10-18-2007, 01:46 PM
fariborz khan's Avatar
fariborz khan fariborz khan is offline
 
Join Date: Jul 2007
Posts: 129
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default use persian calender in forum (jalali)

hi
i have a vb forum that instal on it a php script for desplay my home date (it is Jalali calender) .my forum is ok but wen i instal my blog it say error
now i want ask , how can say to blog to use jallaly date?
and how i can use convert vb calender to jalali?
when i copy jalali date php in includes folder of my forum i change below code in functions.php,
inculdes/functions.php:
=======================
after:
<?php

add:
require_once"jdf.php";

search for:
}
else
{
if ($gmdate)
{
$datefunc = 'gmdate';
}
else
{
$datefunc = 'date';
}

change date to:
jdate
==================================
thats all.
in fact ,i saye to forum that yose jdate but i dont know how can say blog use thse calender.

fariborz khan
Oct 18th '07 09:06am
jdf.php containe this code:
<?php
include_once("lang_jdf_persian.php");

function jdate($type,$maket="now")
{
$result="";
if($maket=="now"){
$year=date("Y");
$month=date("m");
$day=date("d");
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($year, $month, $day);
$maket=jmaketime(date("h")+_JDF_TZhours,date("i")+ _JDF_TZminute,date("s"),$jmont h,$jday,$jyear);
}else{
$maket+=_JDF_TZhours*3600+_JDF_TZminute*60;
$date=date("Y-m-d",$maket);
list( $year, $month, $day ) = preg_split ( '/-/', $date );

list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($year, $month, $day);
}

$need= $maket;
$year=date("Y",$need);
$month=date("m",$need);
$day=date("d",$need);
$i=0;
while($i<strlen($type))
{
$subtype=substr($type,$i,1);
switch ($subtype)
{

case "A":
$result1=date("a",$need);
if($result1=="pm") $result.=_JDF_PM_LONG;
else $result.=_JDF_AM_LONG;
break;

case "a":
$result1=date("a",$need);
if($result1=="pm") $result.=_JDF_PM_SHORT;
else $result.=_JDF_AM_SHORT;
break;
case "d":
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($year, $month, $day);
if($jday<10)$result1="0".$jday;
else $result1=$jday;
if(_JDF_USE_PERSIANNUM) $result.=Convertnumber2farsi($result1);
else $result.=$result1;
break;
case "D":
$result1=date("D",$need);
if($result1=="Sat") $result1=_JDF_Sat_SHORT;
else if($result1=="Sun") $result1=_JDF_Sun_SHORT;
else if($result1=="Mon") $result1=_JDF_Mon_SHORT;
else if($result1=="Tue") $result1=_JDF_Tue_SHORT;
else if($result1=="Wed") $result1=_JDF_Wed_SHORT;
else if($result1=="Thu") $result1=_JDF_Thu_SHORT;
else if($result1=="Fri") $result1=_JDF_Fri_SHORT;
$result.=$result1;
break;
case"F":
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($year, $month, $day);
$result.=monthname($jmonth);
break;
case "g":
$result1=date("g",$need);
if(_JDF_USE_PERSIANNUM) $result.=Convertnumber2farsi($result1);
else $result.=$result1;
break;
case "G":
$result1=date("G",$need);
if(_JDF_USE_PERSIANNUM) $result.=Convertnumber2farsi($result1);
else $result.=$result1;
break;
case "h":
$result1=date("h",$need);
if(_JDF_USE_PERSIANNUM) $result.=Convertnumber2farsi($result1);
else $result.=$result1;
break;
case "H":
$result1=date("H",$need);
if(_JDF_USE_PERSIANNUM) $result.=Convertnumber2farsi($result1);
else $result.=$result1;
break;
case "i":
$result1=date("i",$need);
if(_JDF_USE_PERSIANNUM) $result.=Convertnumber2farsi($result1);
else $result.=$result1;
break;
case "j":
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($year, $month, $day);
$result1=$jday;
if(_JDF_USE_PERSIANNUM) $result.=Convertnumber2farsi($result1);
else $result.=$result1;
break;
case "l":
$result1=date("l",$need);
if($result1=="Saturday") $result1=_JDF_Sat_LONG;
else if($result1=="Sunday") $result1=_JDF_Sun_LONG;
else if($result1=="Monday") $result1=_JDF_Mon_LONG;
else if($result1=="Tuesday") $result1=_JDF_Tue_LONG;
else if($result1=="Wednesday") $result1=_JDF_Wed_LONG;
else if($result1=="Thursday") $result1=_JDF_Thu_LONG;
else if($result1=="Friday") $result1=_JDF_Fri_LONG;
$result.=$result1;
break;
case "m":
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($year, $month, $day);
if($jmonth<10) $result1="0".$jmonth;
else $result1=$jmonth;
if(_JDF_USE_PERSIANNUM) $result.=Convertnumber2farsi($result1);
else $result.=$result1;
break;
case "M":
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($year, $month, $day);
$result.=monthname($jmonth);
break;
case "n":
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($year, $month, $day);
$result1=$jmonth;
if(_JDF_USE_PERSIANNUM) $result.=Convertnumber2farsi($result1);
else $result.=$result1;
break;
case "s":
$result1=date("s",$need);
if(_JDF_USE_PERSIANNUM) $result.=Convertnumber2farsi($result1);
else $result.=$result1;
break;
case "S":
$result.=_JDF_Suffix;
break;
case "t":
$result.=lastday ($month,$day,$year);
break;
case "w":
$result1=date("w",$need);
if(_JDF_USE_PERSIANNUM) $result.=Convertnumber2farsi($result1);
else $result.=$result1;
break;
case "y":
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($year, $month, $day);
$result1=substr($jyear,2,4);
if(_JDF_USE_PERSIANNUM) $result.=Convertnumber2farsi($result1);
else $result.=$result1;
break;
case "Y":
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($year, $month, $day);
$result1=$jyear;
if(_JDF_USE_PERSIANNUM) $result.=Convertnumber2farsi($result1);
else $result.=$result1;
break;
default:
$result.=$subtype;
}
$i++;
}
return $result;
}

function jmaketime($hour,$minute,$second,$jmonth,$jday,$jye ar)
{
list( $year, $month, $day ) = jalali_to_gregorian($jyear, $jmonth, $jday);
$i=mktime($hour,$minute,$second,$month,$day,$year) ;
return $i;
}

///Find Day Begining Of Month
function mstart($month,$day,$year)
{
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($year, $month, $day);
list( $year, $month, $day ) = jalali_to_gregorian($jyear, $jmonth, "1");
$timestamp=mktime(0,0,0,$month,$day,$year);
return date("w",$timestamp);
}

//Find Number Of Days In This Month
function lastday ($month,$day,$year)
{
$lastdayen=date("d",mktime(0,0,0,$month+1,0,$year) );
list( $jyear, $jmonth, $jday ) = gregorian_to_jalali($year, $month, $day);
$lastdatep=$jday;
$jday=$jday2;
while($jday2!="1")
{
if($day<$lastdayen)
{
$day++;
list( $jyear, $jmonth, $jday2 ) = gregorian_to_jalali($year, $month, $day);
if($jdate2=="1") break;
if($jdate2!="1") $lastdatep++;
}
else
{
$day=0;
$month++;
if($month==13)
{
$month="1";
$year++;
}
}

}
return $lastdatep-1;
}

//translate number of month to name of month
function monthname($month)
{

if($month=="01") return _JDF_Far;

if($month=="02") return _JDF_Ord;

if($month=="03") return _JDF_Kho;

if($month=="04") return _JDF_Tir;

if($month=="05") return _JDF_Mor;

if($month=="06") return _JDF_Sha;

if($month=="07") return _JDF_Meh;

if($month=="08") return _JDF_Aba;

if($month=="09") return _JDF_Aza;

if($month=="10") return _JDF_Dey;

if($month=="11") return _JDF_Bah;

if($month=="12") return _JDF_Esf;
}

////here convert to number in persian
function Convertnumber2farsi($srting)
{
$stringtemp="";
$len=strlen($srting);
for($sub=0;$sub<$len;$sub++)
{
if(substr($srting,$sub,1)=="0")$stringtemp.=_JDF_N um0;
elseif(substr($srting,$sub,1)=="1")$stringtemp.=_J DF_Num1;
elseif(substr($srting,$sub,1)=="2")$stringtemp.=_J DF_Num2;
elseif(substr($srting,$sub,1)=="3")$stringtemp.=_J DF_Num3;
elseif(substr($srting,$sub,1)=="4")$stringtemp.=_J DF_Num4;
elseif(substr($srting,$sub,1)=="5")$stringtemp.=_J DF_Num5;
elseif(substr($srting,$sub,1)=="6")$stringtemp.=_J DF_Num6;
elseif(substr($srting,$sub,1)=="7")$stringtemp.=_J DF_Num7;
elseif(substr($srting,$sub,1)=="8")$stringtemp.=_J DF_Num8;
elseif(substr($srting,$sub,1)=="9")$stringtemp.=_J DF_Num9;
else {$stringtemp.=substr($srting,$sub,2);$sub++;}

}
return $stringtemp;

}///end convert to number in persian

////here convert to number in english
function Convertnumber2english($srting)
{
$stringtemp="";
$len=strlen($srting);

for($sub=0;$sub<$len;$sub+=2)
{
if(substr($srting,$sub,2)==_JDF_Num0)$stringtemp.= "0";
elseif(substr($srting,$sub,2)==_JDF_Num1)$stringte mp.="1";
elseif(substr($srting,$sub,2)==_JDF_Num2)$stringte mp.="2";
elseif(substr($srting,$sub,2)==_JDF_Num3)$stringte mp.="3";
elseif(substr($srting,$sub,2)==_JDF_Num4)$stringte mp.="4";
elseif(substr($srting,$sub,2)==_JDF_Num5)$stringte mp.="5";
elseif(substr($srting,$sub,2)==_JDF_Num6)$stringte mp.="6";
elseif(substr($srting,$sub,2)==_JDF_Num7)$stringte mp.="7";
elseif(substr($srting,$sub,2)==_JDF_Num8)$stringte mp.="8";
elseif(substr($srting,$sub,2)==_JDF_Num9)$stringte mp.="9";
else {$stringtemp.=substr($srting,$sub,1);$sub--;}
}
return $stringtemp;

}///end convert to number in english

// "jalali.php" is convertor to and from Gregorian and Jalali calendars.
// Copyright (C) 2000 Roozbeh Pournader and Mohammad Toossi
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// A copy of the GNU General Public License is available from:
//
// <a href="http://www.gnu.org/copyleft/gpl.html" target="_blank">http://www.gnu.org/copyleft/gpl.html</a>
//

function div($a,$b) {
return (int) ($a / $b);
}

function gregorian_to_jalali ($g_y, $g_m, $g_d)
{
$g_days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
$j_days_in_month = array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29);

$gy = $g_y-1600;
$gm = $g_m-1;
$gd = $g_d-1;

$g_day_no = 365*$gy+div($gy+3,4)-div($gy+99,100)+div($gy+399,400);

for ($i=0; $i < $gm; ++$i)
$g_day_no += $g_days_in_month[$i];
if ($gm>1 && (($gy%4==0 && $gy%100!=0) || ($gy%400==0)))
/* leap and after Feb */
$g_day_no++;
$g_day_no += $gd;

$j_day_no = $g_day_no-79;

$j_np = div($j_day_no, 12053); /* 12053 = 365*33 + 32/4 */
$j_day_no = $j_day_no % 12053;

$jy = 979+33*$j_np+4*div($j_day_no,1461); /* 1461 = 365*4 + 4/4 */

$j_day_no %= 1461;

if ($j_day_no >= 366) {
$jy += div($j_day_no-1, 365);
$j_day_no = ($j_day_no-1)%365;
}

for ($i = 0; $i < 11 && $j_day_no >= $j_days_in_month[$i]; ++$i)
$j_day_no -= $j_days_in_month[$i];
$jm = $i+1;
$jd = $j_day_no+1;

return array($jy, $jm, $jd);
}

function jalali_to_gregorian($j_y, $j_m, $j_d)
{
$g_days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
$j_days_in_month = array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29);

$jy = $j_y-979;
$jm = $j_m-1;
$jd = $j_d-1;

$j_day_no = 365*$jy + div($jy, 33)*8 + div($jy%33+3, 4);
for ($i=0; $i < $jm; ++$i)
$j_day_no += $j_days_in_month[$i];

$j_day_no += $jd;

$g_day_no = $j_day_no+79;

$gy = 1600 + 400*div($g_day_no, 146097); /* 146097 = 365*400 + 400/4 - 400/100 + 400/400 */
$g_day_no = $g_day_no % 146097;

$leap = true;
if ($g_day_no >= 36525) /* 36525 = 365*100 + 100/4 */
{
$g_day_no--;
$gy += 100*div($g_day_no, 36524); /* 36524 = 365*100 + 100/4 - 100/100 */
$g_day_no = $g_day_no % 36524;

if ($g_day_no >= 365)
$g_day_no++;
else
$leap = false;
}

$gy += 4*div($g_day_no, 1461); /* 1461 = 365*4 + 4/4 */
$g_day_no %= 1461;

if ($g_day_no >= 366) {
$leap = false;

$g_day_no--;
$gy += div($g_day_no, 365);
$g_day_no = $g_day_no % 365;
}

for ($i = 0; $g_day_no >= $g_days_in_month[$i] + ($i == 1 && $leap); $i++)
$g_day_no -= $g_days_in_month[$i] + ($i == 1 && $leap);
$gm = $i+1;
$gd = $g_day_no+1;

return array($gy, $gm, $gd);
}
?>
==========================================

lang_jdf_persian.php have this code

===========================================
<?php
define("_JDF_USE_PERSIANNUM","1");
define("_JDF_TZhours","0");
define("_JDF_TZminute","0");
define('_JDF_AM_LONG','قبل از ظهر');
define('_JDF_PM_LONG','بعد از ظهر');
define('_JDF_AM_SHORT','ق.ظ');
define('_JDF_PM_SHORT','ب.ظ');
define('_JDF_Sat_LONG','شنبه');
define('_JDF_Sun_LONG','یکشنبه');
define('_JDF_Mon_LONG','دوشنبه');
define('_JDF_Tue_LONG','سه شنبه');
define('_JDF_Wed_LONG','چهارشنبه');
define('_JDF_Thu_LONG','پنجشنبه');
define('_JDF_Fri_LONG','جمعه');
define('_JDF_Sat_SHORT','ش');
define('_JDF_Sun_SHORT','ی');
define('_JDF_Mon_SHORT','د');
define('_JDF_Tue_SHORT','س');
define('_JDF_Wed_SHORT','چ');
define('_JDF_Thu_SHORT','پ');
define('_JDF_Fri_SHORT','ج');
define('_JDF_Suffix','م');
define('_JDF_Far','فروردین');
define('_JDF_Ord','اردیبهشت');
define('_JDF_Kho','خرداد');
define('_JDF_Tir','تیر');
define('_JDF_Mor','مرداد');
define('_JDF_Sha','شهریور');
define('_JDF_Meh','مهر');
define('_JDF_Aba','آبان');
define('_JDF_Aza','آذر');
define('_JDF_Dey','دی');
define('_JDF_Bah','بهمن');
define('_JDF_Esf','اسفند');
define('_JDF_Num0','۰');
define('_JDF_Num1','۱');
define('_JDF_Num2','۲');
define('_JDF_Num3','۳');
define('_JDF_Num4','۴');
define('_JDF_Num5','۵');
define('_JDF_Num6','۶');
define('_JDF_Num7','۷');
define('_JDF_Num8','۸');
define('_JDF_Num9','۹');
?>

================================

All The Best
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:38 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03084 seconds
  • Memory Usage 2,323KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete