PDA

View Full Version : سوال: اختلاف زمانی 3.30



shahedifar
دوشنبه 13 مرداد 1393, 00:44 صبح
دوستان من از کد انتخاب تاریخ آقای فرهادی دارم استفاده میکنم.یه مشکلی که هست تاریخش 3.30 از ساعت ایران عقب هست بخاطر اون مشکلاتی پیش آورده واسم.میشه بگین رو کد زیر چه تغییری باید انجام بدم؟


/* * JalaliJSCalendar - Jalali Extension for Date Object * Copyright (c) 2008 Ali Farhadi (http://farhadi.ir/) * Released under the terms of the GNU General Public License. * See the GPL for details (http://www.gnu.org/licenses/gpl.html). * * Based on code from http://farsiweb.info */
JalaliDate = { g_days_in_month: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], j_days_in_month: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29]};
JalaliDate.jalaliToGregorian = function(j_y, j_m, j_d){ j_y = parseInt(j_y); j_m = parseInt(j_m); j_d = parseInt(j_d); var jy = j_y-979; var jm = j_m-1; var jd = j_d-1;
var j_day_no = 365*jy + parseInt(jy / 33)*8 + parseInt((jy%33+3) / 4); for (var i=0; i < jm; ++i) j_day_no += JalaliDate.j_days_in_month[i];
j_day_no += jd;
var g_day_no = j_day_no+79;
var gy = 1600 + 400 * parseInt(g_day_no / 146097); /* 146097 = 365*400 + 400/4 - 400/100 + 400/400 */ g_day_no = g_day_no % 146097;
var leap = true; if (g_day_no >= 36525) /* 36525 = 365*100 + 100/4 */ { g_day_no--; gy += 100*parseInt(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*parseInt(g_day_no/ 1461); /* 1461 = 365*4 + 4/4 */ g_day_no %= 1461;
if (g_day_no >= 366) { leap = false;
g_day_no--; gy += parseInt(g_day_no/ 365); g_day_no = g_day_no % 365; }
for (var i = 0; g_day_no >= JalaliDate.g_days_in_month[i] + (i == 1 && leap); i++) g_day_no -= JalaliDate.g_days_in_month[i] + (i == 1 && leap); var gm = i+1; var gd = g_day_no+1;
return [gy, gm, gd];}
JalaliDate.checkDate = function(j_y, j_m, j_d){ return !(j_y < 0 || j_y > 32767 || j_m < 1 || j_m > 12 || j_d < 1 || j_d > (JalaliDate.j_days_in_month[j_m-1] + (j_m == 12 && !((j_y-979)%33%4))));}
JalaliDate.gregorianToJalali = function(g_y, g_m, g_d){ g_y = parseInt(g_y); g_m = parseInt(g_m); g_d = parseInt(g_d); var gy = g_y-1600; var gm = g_m-1; var gd = g_d-1;
var g_day_no = 365*gy+parseInt((gy+3) / 4)-parseInt((gy+99)/100)+parseInt((gy+399)/400);
for (var i=0; i < gm; ++i) g_day_no += JalaliDate.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;
var j_day_no = g_day_no-79;
var j_np = parseInt(j_day_no/ 12053); j_day_no %= 12053;
var jy = 979+33*j_np+4*parseInt(j_day_no/1461);
j_day_no %= 1461;
if (j_day_no >= 366) { jy += parseInt((j_day_no-1)/ 365); j_day_no = (j_day_no-1)%365; }
for (var i = 0; i < 11 && j_day_no >= JalaliDate.j_days_in_month[i]; ++i) { j_day_no -= JalaliDate.j_days_in_month[i]; } var jm = i+1; var jd = j_day_no+1;

return [jy, jm, jd];}
Date.prototype.setJalaliFullYear = function(y, m, d) { var gd = this.getDate(); var gm = this.getMonth(); var gy = this.getFullYear(); var j = JalaliDate.gregorianToJalali(gy, gm+1, gd); if (y < 100) y += 1300; j[0] = y; if (m != undefined) { if (m > 11) { j[0] += Math.floor(m / 12); m = m % 12; } j[1] = m + 1; } if (d != undefined) j[2] = d; var g = JalaliDate.jalaliToGregorian(j[0], j[1], j[2]); return this.setFullYear(g[0], g[1]-1, g[2]);}
Date.prototype.setJalaliMonth = function(m, d) { var gd = this.getDate(); var gm = this.getMonth(); var gy = this.getFullYear(); var j = JalaliDate.gregorianToJalali(gy, gm+1, gd); if (m > 11) { j[0] += math.floor(m / 12); m = m % 12; } j[1] = m+1; if (d != undefined) j[2] = d; var g = JalaliDate.jalaliToGregorian(j[0], j[1], j[2]); return this.setFullYear(g[0], g[1]-1, g[2]);}
Date.prototype.setJalaliDate = function(d) { var gd = this.getDate(); var gm = this.getMonth(); var gy = this.getFullYear(); var j = JalaliDate.gregorianToJalali(gy, gm+1, gd); j[2] = d; var g = JalaliDate.jalaliToGregorian(j[0], j[1], j[2]); return this.setFullYear(g[0], g[1]-1, g[2]);}
Date.prototype.getJalaliFullYear = function() { var gd = this.getDate(); var gm = this.getMonth(); var gy = this.getFullYear(); var j = JalaliDate.gregorianToJalali(gy, gm+1, gd); return j[0];}
Date.prototype.getJalaliMonth = function() { var gd = this.getDate(); var gm = this.getMonth(); var gy = this.getFullYear(); var j = JalaliDate.gregorianToJalali(gy, gm+1, gd); return j[1]-1;}
Date.prototype.getJalaliDate = function() { var gd = this.getDate(); var gm = this.getMonth(); var gy = this.getFullYear(); var j = JalaliDate.gregorianToJalali(gy, gm+1, gd); return j[2];}
Date.prototype.getJalaliDay = function() { var day = this.getDay(); day = (day + 1) % 7; return day;}

/** * Jalali UTC functions */
Date.prototype.setJalaliUTCFullYear = function(y, m, d) { var gd = this.getUTCDate(); var gm = this.getUTCMonth(); var gy = this.getUTCFullYear(); var j = JalaliDate.gregorianToJalali(gy, gm+1, gd); if (y < 100) y += 1300; j[0] = y; if (m != undefined) { if (m > 11) { j[0] += Math.floor(m / 12); m = m % 12; } j[1] = m + 1; } if (d != undefined) j[2] = d; var g = JalaliDate.jalaliToGregorian(j[0], j[1], j[2]); return this.setUTCFullYear(g[0], g[1]-1, g[2]);}
Date.prototype.setJalaliUTCMonth = function(m, d) { var gd = this.getUTCDate(); var gm = this.getUTCMonth(); var gy = this.getUTCFullYear(); var j = JalaliDate.gregorianToJalali(gy, gm+1, gd); if (m > 11) { j[0] += math.floor(m / 12); m = m % 12; } j[1] = m+1; if (d != undefined) j[2] = d; var g = JalaliDate.jalaliToGregorian(j[0], j[1], j[2]); return this.setUTCFullYear(g[0], g[1]-1, g[2]);}
Date.prototype.setJalaliUTCDate = function(d) { var gd = this.getUTCDate(); var gm = this.getUTCMonth(); var gy = this.getUTCFullYear(); var j = JalaliDate.gregorianToJalali(gy, gm+1, gd); j[2] = d; var g = JalaliDate.jalaliToGregorian(j[0], j[1], j[2]); return this.setUTCFullYear(g[0], g[1]-1, g[2]);}
Date.prototype.getJalaliUTCFullYear = function() { var gd = this.getUTCDate(); var gm = this.getUTCMonth(); var gy = this.getUTCFullYear(); var j = JalaliDate.gregorianToJalali(gy, gm+1, gd); return j[0];}
Date.prototype.getJalaliUTCMonth = function() { var gd = this.getUTCDate(); var gm = this.getUTCMonth(); var gy = this.getUTCFullYear(); var j = JalaliDate.gregorianToJalali(gy, gm+1, gd); return j[1]-1;}
Date.prototype.getJalaliUTCDate = function() { var gd = this.getUTCDate(); var gm = this.getUTCMonth(); var gy = this.getUTCFullYear(); var j = JalaliDate.gregorianToJalali(gy, gm+1, gd); return j[2];}
Date.prototype.getJalaliUTCDay = function() { var day = this.getUTCDay(); day = (day + 1) % 7; return day;}

hamedarian2009
دوشنبه 13 مرداد 1393, 17:45 عصر
سلام
میتونید از این دستور در ابتدای اسکریپت استفاده کنید

date_default_timezone_set('Asia/Tehran');

shahedifar
سه شنبه 14 مرداد 1393, 01:06 صبح
متاسفانه با دستوری که شما فرستادین کار نمیکنه!

shahedifar
چهارشنبه 15 مرداد 1393, 16:14 عصر
دوستان کسی نظری نداره؟من عین کد رو هم فرستادم واستون.

2undercover
چهارشنبه 15 مرداد 1393, 18:44 عصر
1. این ها کد های Javascript هستند و به این بخش مربوط نمیشه.
2. تاریخ در JS وابسته به ساعت سیستم کاربر هست. احتمالا ساعت سیستمی که روش این کد رو تست کردید، خراب بوده.

shahedifar
چهارشنبه 15 مرداد 1393, 23:33 عصر
1. این ها کد های Javascript هستند و به این بخش مربوط نمیشه.
2. تاریخ در JS وابسته به ساعت سیستم کاربر هست. احتمالا ساعت سیستمی که روش این کد رو تست کردید، خراب بوده.
3:30 ساعت اختلاف زمانی داریم.مشکل از کدهاست.کمک کنین دوستان.