تاریخ شمسی

[font="Tahoma"][RTL]

سلام دوستان

من دارم رو یک پروژه ای کار میکنم که به شدت با زمان (تاریخ و ساعت) درگیره و چون یک وبسایت فارسی هست باید از تاریخ شمسی استفاده کنم. روشهایی که برای این کار معمولا استفاده می شه 2 روش هست:

1- ذخیره مستقیم تاریخ شمسی در دیتابیس

2- ذخیره تاریخ میلادی و تبدیل آن به شمسی در هنگام ذخیره و فراخوانی از دیتابیس

در روش اول اگه داده ها به صورت رشته ذخیره بشه خیلی از عملیات کار با تاریخ رو نمیشه روی اونها انجام داد و اگه داده ها از نوع تاریخ باشه روز های آخر ماه به مشکل بر میخوره (البته به ندرت پیش میاد که روزهای آخر ماه مثلا ماه هایی که 31 روز دارن به مشکل بر بخوره ولی خب احتمالش هست)

در روش دوم هم سربار تبدیل تاریخ ها در حین ذخیره و بازیابی وجود داره.

دوستان کدوم روش رو پیشنهاد میکنن؟؟؟

اگه روش اول؟؟ با مشکلات چطوری برخورد میکنید؟

اگه روش دوم؟؟ اکستنشن یا کلاسی برای مدیریت کامل تبدیلات و عملیات زمان سراغ دارید؟؟؟

ممنون میشم سریع جواب بدین ^_^

[/RTL][/font]

[font="Tahoma"][rtl]

به نظر من با توجه به معرفی کلاس IntlDateFormatter

در php 5.3 به راحتی میتونین از توابع و کلاسهای خود php برای تاریخ استفاده کنین بنابراین ذخیره تاریخ به صورت timestamp یا string چه با فرمت میلادی یا شمسی و یا تبدیل اونها به هم به راحتی انجام میشه

مثال 1: تبدیل string تاریخ شمسی با فرمت (روز/ماه/سال) به Unix timestamp

[/rtl]

[/font]





$dateString='1391/05/12';


$date=new IntlDateFormatter('fa@calendar=persian',IntlDateFormatter::FULL,  IntlDateFormatter::FULL, 'GMT', IntlDateFormatter::TRADITIONAL, 'yyyy/M/d');


$timestamp=$date->parse($dateString);



[font="Tahoma"][rtl]

مثال 2: نمایش تاریخ شمسی از روی Unix timestamp

[/rtl][/font]




$timestamp=time();


$date=new IntlDateFormatter('fa@calendar=persian',IntlDateFormatter::FULL,  IntlDateFormatter::FULL, 'GMT', IntlDateFormatter::TRADITIONAL, 'yyyy/M/d');


echo $date->format($timestamp);




[font="Tahoma"]

[rtl]

آقای فرهادی یک کلاس کمکی (IntlDateTime) هم برای استفاده راحتتر از این کلاس درست کرده

[/rtl][/font]

[right][rtl]

[font="Tahoma"]نمیدونستم همچین چیزی هست ممنون خیلی مفید بود[/font]

[/rtl]

[/right]

[right]

[/right]

[right][font="Tahoma"]

خیلی ممنون

حتما ازش استفاده میکنم[/font][/right]

[font="Tahoma"][rtl]

خواهش میکنم، موفق باشید

[/rtl][/font]

[right][/right]سلام

من از تازه کار کار با این فریم ورک را شروع کردم و برای تبدیل تاریخ قسمت پست وبلاگ از لینک زیر استفاده کردم

http://www.yiiframework.com/extension/jalalicalendar/#add-comment

ولی به پیغام زیر هنگام اجرا برخوردم

Property "Post.start_time" is not defined.

مراحل کار را به شکل زیر انجام دادم:

1-فایل را در پوشه افزونه ها اکسترکت کردم

2-کد نوشته شده را در مسیر زیر کپی کردم

protected/views/post/view.php

ممنون می شم اگر کسی کمکم بکند

[font="Tahoma"][rtl]

شما باید در قسمت attribute نام پراپرتی ای که قرار است تاریخ در اون ذخیره بشه رو بدید

در مثال موجود در صفحه ویجت start_time ذکر شده و از اونجا که این پراپرتی در مدل شما (Post) موجود نیست ، با خطا مواجه میشید

[/rtl][/font]

ممنون از پاسخ شما،

خیلی لطف کردید

درست شد