aryaei2000
سه شنبه 29 مرداد 1387, 12:06 عصر
با سلام من میخوام تارخ شمسی رو در یک فرم به بانک اطلاعاتی اضافه کنم و در یک صفحه اونو فراخونی کنم باید چکار کنم؟
samispeed
چهارشنبه 30 مرداد 1387, 08:56 صبح
بهترین روش این هست که داده را به میلادی تبدیل کنید و در دیتابیس ذخیره کنید و برای بازیابی آن را بخوانید و به شمسی تبدیل کنید (اگر فیلد اطلاعاتی شما datetime در بانک هست)
اگر هم خواستید که داده را در فیلد رشته ای بریزید که همینطور که شمسی وارد کردید ثبت می کنید و سپس آن را باز یابی می کند که روش مناسبی نیست (در جستجو ها مشکل پیدا می کنید)
aryaei2000
چهارشنبه 30 مرداد 1387, 09:57 صبح
چجوری به میلادی تبدیلش کنم ؟ اینکه پیشفرضش میلادی هست؟میشه کد بزارید چون ما حرفه ای نیستیم!!!!
aryaei2000
شنبه 02 شهریور 1387, 10:42 صبح
کسی نبود جواب بده؟
aryaei2000
شنبه 02 شهریور 1387, 10:42 صبح
دوستان؟ من کارم گیره ها!!!!!
nextplus
شنبه 02 شهریور 1387, 12:47 عصر
کد زیر را به صفحه وب خود اضافه کنید سپس هرجا که خواستید تاریخ را بیاورید این کد:<DateShamsi%=%> را قرار دهید.البته این کد رو من از توی یک سایت پیداکردم.
<META http-equiv=CONTENT-TYPE content="text/html; charset=utf-8">
<%
D = Array (20, 19, 20, 20, 21, 21, 22, 22, 22, 22, 21, 21)
P = Array (11, 12, 10, 12, 11, 11, 10, 10, 10, 9, 10, 10)
W = Array ("يکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه")
Mon = Array ("فروردين", "ارديبهشت", "خرداد", "تير", "مرداد", "شهريور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند")
Dm = Day(Date)
Mm = Month(Date)
Ym = Year(Date)
U = 0
Rp = 0
If (Ym Mod 4) = 0 Then U = 1
If ((Ym Mod 100) = 0 AND (Ym Mod 400) <> 0) Then U = 0
Ys = Ym - 622
X = Ys - 22
X = X Mod 33
If ((X Mod 4) = 0 AND X <> 32) Then Rp = 1
I = Not(Rp-2) + NOT(U - 2) * 2
X = 0
If (I = 0 AND Mm = 3) Then X = 1
If I = 0 Then I = 3
Ms = (9 + Mm) Mod 13
If Ms < 10 Then Ms = Ms + 1
D1 = D(Mm - 1)
If (I = 1 AND Mm > 2) Then D1 = D1 - 1
If (I = 2 AND Mm < 3) then D1 = D1 - 1
P1 = P(Mm - 1)
If (I = 1 AND Mm > 2) Then P1 = P1 + 1
If (I = 2 AND Mm < 4) Then P1 = P1 + 1
If (Dm > 0 AND Dm <= D1) Then
Ds = P1 + Dm + X - 1
X = 1
Else
Ds = Dm - D1
Ms = Ms + 1
If Ms = 13 Then Ms = 1
X = 2
End If
If ((Mm = 3 AND X = 2) OR Mm > 3) Then Ys = Ys + 1
DateShamsi = W(WeekDay(Date) - 1) & " " & Ds & " " & Mon(Ms - 1) & " " & Ys
%>
اميدوارم جواب سوالت رو گرفته باشي
nextplus
شنبه 02 شهریور 1387, 12:55 عصر
حالا اگه مي خواهي زمان ذخيره تو ديتابيس شمسي مي توني اين ماژول رو بصورت تابع دربياري و مقدار تاريخ رو پارامتري كني و خروجي تابع رو داخل ديتابيس بفرستي.
البته بايد بگم كار تبديل زمان ذخيره بهتره ؛ چون اگه بخواهي زمان لود و خواندن از ديتابيس اين كار رو انجام بدي مجبوري به ازاي هر ركورد يك بار پردازش داشته باشي و اين باعث كند شدن اجراي صفحت ميشه.
milade
جمعه 08 شهریور 1387, 06:03 صبح
از اول بررسی می کنیم
شما در کد نویسی مشکل دارید؟
در کدام قسمت اون؟
لطفا واضح مشکلتون رو بگید و این قدر تایپیک اف ندید.
aryaei2000
جمعه 08 شهریور 1387, 16:41 عصر
مشکل من اینه که تاریخ رو نمیتونم تو بانک اطلاعاتی وارد کنم
milade
شنبه 09 شهریور 1387, 12:19 عصر
اهان پس کد می خوای.
تا فردا می دمت
بای
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.