PDA

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



maya2010
چهارشنبه 11 فروردین 1389, 17:40 عصر
من یه اسکریپت php classfieds نیازمندی ها دارم که تقویمش میلادیه.
این اسکریپت ار پلاگین tiny_mce هم استفاده میکنه و تاریخ رو بصورت 2010.04.22 نشون میده.
من نمیدونم کدوم فایل رو دستکاری کنم یا چکار کنم تا تقویمم شمسی بشه.
آیا میشه همین رو درست کرد یا کدی هست که من در این اسکریپت بگذارم و اتوماتیک تقویم رو درست کنه.
تو اسکریپن فایلی به نام Calendar هم وجود نداره.
کدی که فکر میکنم باید دستکاری بشه رو براتون میگذارم:

/**
* $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
*
* @author Moxiecode
* @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
*/

/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('insertdatetime') ;

var TinyMCE_InsertDateTimePlugin = {
getInfo : function() {
return {
longname : 'Insert date/time',
author : 'Moxiecode Systems AB',
authorurl : 'http://tinymce.moxiecode.com',
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',
version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
};
},

/**
* Returns the HTML contents of the insertdate, inserttime controls.
*/
getControlHTML : function(cn) {
switch (cn) {
case "insertdate":
return tinyMCE.getButtonHTML(cn, 'lang_insertdate_desc', '{$pluginurl}/images/insertdate.gif', 'mceInsertDate');

case "inserttime":
return tinyMCE.getButtonHTML(cn, 'lang_inserttime_desc', '{$pluginurl}/images/inserttime.gif', 'mceInsertTime');
}

return "";
},

/**
* Executes the mceInsertDate command.
*/
execCommand : function(editor_id, element, command, user_interface, value) {
/* Adds zeros infront of value */
function addZeros(value, len) {
value = "" + value;

if (value.length < len) {
for (var i=0; i<(len-value.length); i++)
value = "0" + value;
}

return value;
}

function getDateTime(d, fmt) {
fmt = fmt.replace("%D", "%m/%d/%y");
fmt = fmt.replace("%r", "%I:%M:%S %p");
fmt = fmt.replace("%Y", "" + d.getFullYear());
fmt = fmt.replace("%y", "" + d.getYear());
fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));
fmt = fmt.replace("%d", addZeros(d.getDate(), 2));
fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));
fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));
fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
fmt = fmt.replace("%B", "" + tinyMCE.getLang("lang_inserttime_months_long")[d.getMonth()]);
fmt = fmt.replace("%b", "" + tinyMCE.getLang("lang_inserttime_months_short")[d.getMonth()]);
fmt = fmt.replace("%A", "" + tinyMCE.getLang("lang_inserttime_day_long")[d.getDay()]);
fmt = fmt.replace("%a", "" + tinyMCE.getLang("lang_inserttime_day_short")[d.getDay()]);
fmt = fmt.replace("%%", "%");

return fmt;
}

// Handle commands
switch (command) {
case "mceInsertDate":
tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false, getDateTime(new Date(), tinyMCE.getParam("plugin_insertdate_dateFormat", tinyMCE.getLang('lang_insertdate_def_fmt'))));
return true;

case "mceInsertTime":
tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false, getDateTime(new Date(), tinyMCE.getParam("plugin_insertdate_timeFormat", tinyMCE.getLang('lang_inserttime_def_fmt'))));
return true;
}

// Pass to next handler in chain
return false;
}
};

tinyMCE.addPlugin("insertdatetime", TinyMCE_InsertDateTimePlugin);


و یه فایل دیگر:


tinyMCE.importPluginLanguagePack('insertdatetime') ;var TinyMCE_InsertDateTimePlugin={getInfo:function(){r eturn{longname:'Insert date/time',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion}},getControlHTML:function(cn ){switch(cn){case"insertdate":return tinyMCE.getButtonHTML(cn,'lang_insertdate_desc','{ $pluginurl}/images/insertdate.gif','mceInsertDate');case"inserttime":return tinyMCE.getButtonHTML(cn,'lang_inserttime_desc','{ $pluginurl}/images/inserttime.gif','mceInsertTime')}return""},execCommand:function(editor_id,element,command,u ser_interface,value){function addZeros(value,len){value=""+value;if(value.length<len){for(var i=0;i<(len-value.length);i++)value="0"+value}return value}function getDateTime(d,fmt){fmt=fmt.replace("%D","%m/%d/%y");fmt=fmt.replace("%r","%I:%M:%S %p");fmt=fmt.replace("%Y",""+d.getFullYear());fmt=fmt.replace("%y",""+d.getYear());fmt=fmt.replace("%m",addZeros(d.getMonth()+1,2));fmt=fmt.replace("%d",addZeros(d.getDate(),2));fmt=fmt.replace("%H",""+addZeros(d.getHours(),2));fmt=fmt.replace("%M",""+addZeros(d.getMinutes(),2));fmt=fmt.replace("%S",""+addZeros(d.getSeconds(),2));fmt=fmt.replace("%I",""+((d.getHours()+11)%12+1));fmt=fmt.replace("%p",""+(d.getHours()<12?"AM":"PM"));fmt=fmt.replace("%B",""+tinyMCE.getLang("lang_inserttime_months_long")[d.getMonth()]);fmt=fmt.replace("%b",""+tinyMCE.getLang("lang_inserttime_months_short")[d.getMonth()]);fmt=fmt.replace("%A",""+tinyMCE.getLang("lang_inserttime_day_long")[d.getDay()]);fmt=fmt.replace("%a",""+tinyMCE.getLang("lang_inserttime_day_short")[d.getDay()]);fmt=fmt.replace("%%","%");return fmt}switch(command){case"mceInsertDate":tinyMCE.execInstanceCommand(editor_id,'mceInsertC ontent',false,getDateTime(new Date(),tinyMCE.getParam("plugin_insertdate_dateFormat",tinyMCE.getLang('lang_insertdate_def_fmt'))));ret urn true;case"mceInsertTime":tinyMCE.execInstanceCommand(editor_id,'mceInsertC ontent',false,getDateTime(new Date(),tinyMCE.getParam("plugin_insertdate_timeFormat",tinyMCE.getLang('lang_inserttime_def_fmt'))));ret urn true}return false}};tinyMCE.addPlugin("insertdatetime",TinyMCE_InsertDateTimePlugin);


اگه راهنماییم کنید بسیار ممنونم
از مدیران سایت به خاطر سایشون هم سپاسگذارم

maya2010
پنج شنبه 12 فروردین 1389, 12:48 عصر
کسی نیست ما رو تحویل بگیره

mojtabadj
پنج شنبه 12 فروردین 1389, 15:19 عصر
کسی نیست ما رو تحویل بگیره

اینم تقویم حالشو ببر:لبخند:

maya2010
پنج شنبه 12 فروردین 1389, 17:36 عصر
اینم تقویم حالشو ببر:لبخند:



خوب چجوری باید از این استفاده کنم؟
و اینکه این چطوری تقویم سایت من رو از میلادی به شمسی میکنه؟
شایدم من بد توضیح دادم:
سایت من نیازمندی ها است از نوع php classfieds به زبان php
کاربرا وقتی مطلب میگذارند تاریخ قراردادن و انقضا مطلبشون و تاریخ عضویتشون میلادیه.
این رو چجوری شمسی کنم.
کدش رو هم در بالا قرار دادم.
نیازی هم به تقویم ندارم چون اصلا برای من کاربرد نداره.
با سپاس از شما

maya2010
جمعه 13 فروردین 1389, 19:12 عصر
آیا کدی پیدا میشه تا توی فالدر سایت بگذارم و توماتیک شمسی کنه؟

saeid99
دوشنبه 16 فروردین 1389, 12:36 عصر
اینم یه کلاسه فکر کنم اگه به مثالاش نگاه کنی به کارت بیاد..
http://barnamenevis.org/forum/showpost.php?p=890710&postcount=4

maya2010
سه شنبه 17 فروردین 1389, 12:05 عصر
اینم یه کلاسه فکر کنم اگه به مثالاش نگاه کنی به کارت بیاد..
http://barnamenevis.org/forum/showpost.php?p=890710&postcount=4

خوب اینو چطوری باید در اسکریپتم استفاده کنم؟

saeid99
سه شنبه 17 فروردین 1389, 17:07 عصر
با توجه به مثالای داخل پوشه داریم ..

<?php
include ("PersianDate.Class.php");
echo '<p style="font: 12px Tahoma; direction: rtl; text-align: right; line-height: 20px;">';
$pd = new PersianDate;
date_default_timezone_set('Asia/Tehran');
echo "در تاریخ 6/4/2010 میلادی، تاریخ شمسی مصادف با " . $pd->Date("l Y/m/d", "2010-4-06") . " بود.<br>";
echo "</p>";
?>

maya2010
سه شنبه 17 فروردین 1389, 20:12 عصر
با توجه به مثالای داخل پوشه داریم ..

<?php
include ("PersianDate.Class.php");
echo '<p style="font: 12px Tahoma; direction: rtl; text-align: right; line-height: 20px;">';
$pd = new PersianDate;
date_default_timezone_set('Asia/Tehran');
echo "در تاریخ 6/4/2010 میلادی، تاریخ شمسی مصادف با " . $pd->Date("l Y/m/d", "2010-4-06") . " بود.<br>";
echo "</p>";
?>
من این مثال رو چکار کنم ؟ کجا قرارش بدم . آیا باید تو فایلی بزارمش . آیا باید تو دیتابیس بگذارمش . کجا بذارمش؟؟؟؟؟
و اون فایل دیگری ( فایل دومی )رو هم کجا بزارم؟

saeid99
چهارشنبه 18 فروردین 1389, 09:06 صبح
تابعی که تاریخ رو میفرسته باید دزست کنی اگه تابع مورد نظر getDateTime باشه ..

function getDateTime(d, fmt) {
fmt = fmt.replace("%D", "%m/%d/%y");
fmt = fmt.replace("%r", "%I:%M:%S %p");
fmt = fmt.replace("%Y", "" + d.getFullYear());
fmt = fmt.replace("%y", "" + d.getYear());
fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));
fmt = fmt.replace("%d", addZeros(d.getDate(), 2));
fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));
fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));
fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
fmt = fmt.replace("%B", "" + tinyMCE.getLang("lang_inserttime_months_long")[d.getMonth()]);
fmt = fmt.replace("%b", "" + tinyMCE.getLang("lang_inserttime_months_short")[d.getMonth()]);
fmt = fmt.replace("%A", "" + tinyMCE.getLang("lang_inserttime_day_long")[d.getDay()]);
fmt = fmt.replace("%a", "" + tinyMCE.getLang("lang_inserttime_day_short")[d.getDay()]);
fmt = fmt.replace("%%", "%");
$pd = new PersianDate;
date_default_timezone_set('Asia/Tehran');
$fmt=str_replace(".","-",$fmt);
$fmt=$pd->Date("l Y/m/d", $fmt) ;
return fmt;
}

maya2010
چهارشنبه 18 فروردین 1389, 13:57 عصر
قبل از اینکه بخوام سوالی مطرح کنم از بابت پیگیری و جواب دادنت بسیار از تو سپاسگذارم. (ایشاالله عروسیت)

واما مشگل اینه که فانکشن من یه جو دیگست و تو هیچ کدوم از فایل هام چنین چیزی که مشابه sample بالا باشه نیست.
آدرس فانکشنمو برای دادم upload کردم اگه زحمتی نیست نگاهش کن ببین کجاش باید تغییر کنه...

http://uploading.com/files/6d14812e/functions.rar

اینم tinymc منه شاید هم باید این یکی دستکاری بشه؟

/**
* $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
*
* @author Moxiecode
* @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
*/

/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('insertdatetime') ;

var TinyMCE_InsertDateTimePlugin = {
getInfo : function() {
return {
longname : 'Insert date/time',
author : 'Moxiecode Systems AB',
authorurl : 'http://tinymce.moxiecode.com',
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',
version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
};
},

/**
* Returns the HTML contents of the insertdate, inserttime controls.
*/
getControlHTML : function(cn) {
switch (cn) {
case "insertdate":
return tinyMCE.getButtonHTML(cn, 'lang_insertdate_desc', '{$pluginurl}/images/insertdate.gif', 'mceInsertDate');

case "inserttime":
return tinyMCE.getButtonHTML(cn, 'lang_inserttime_desc', '{$pluginurl}/images/inserttime.gif', 'mceInsertTime');
}

return "";
},

/**
* Executes the mceInsertDate command.
*/
execCommand : function(editor_id, element, command, user_interface, value) {
/* Adds zeros infront of value */
function addZeros(value, len) {
value = "" + value;

if (value.length < len) {
for (var i=0; i<(len-value.length); i++)
value = "0" + value;
}

return value;
}

function getDateTime(d, fmt) {
fmt = fmt.replace("%D", "%m/%d/%y");
fmt = fmt.replace("%r", "%I:%M:%S %p");
fmt = fmt.replace("%Y", "" + d.getFullYear());
fmt = fmt.replace("%y", "" + d.getYear());
fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));
fmt = fmt.replace("%d", addZeros(d.getDate(), 2));
fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));
fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));
fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
fmt = fmt.replace("%B", "" + tinyMCE.getLang("lang_inserttime_months_long")[d.getMonth()]);
fmt = fmt.replace("%b", "" + tinyMCE.getLang("lang_inserttime_months_short")[d.getMonth()]);
fmt = fmt.replace("%A", "" + tinyMCE.getLang("lang_inserttime_day_long")[d.getDay()]);
fmt = fmt.replace("%a", "" + tinyMCE.getLang("lang_inserttime_day_short")[d.getDay()]);
fmt = fmt.replace("%%", "%");

return fmt;
}

// Handle commands
switch (command) {
case "mceInsertDate":
tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false, getDateTime(new Date(), tinyMCE.getParam("plugin_insertdate_dateFormat", tinyMCE.getLang('lang_insertdate_def_fmt'))));
return true;

case "mceInsertTime":
tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false, getDateTime(new Date(), tinyMCE.getParam("plugin_insertdate_timeFormat", tinyMCE.getLang('lang_inserttime_def_fmt'))));
return true;
}

// Pass to next handler in chain
return false;
}
};

tinyMCE.addPlugin("insertdatetime", TinyMCE_InsertDateTimePlugin);

maya2010
دوشنبه 23 فروردین 1389, 15:54 عصر
ما که نفهمیدیم چی شد

behrooznet
سه شنبه 21 شهریور 1391, 13:09 عصر
اقا من اسکریپت php دارم که تاریخ های توش رو می خوام تبدیل به تاریخ شمسی کنم
مبتدی هم هستم
لطفا راهنماییم میکنید ؟