Yii Framework Forum: تاریخ شمسی - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

تاریخ شمسی بهترین راه برای استفاده از تاریخ شمسی

#1 User is offline   Mahmood3D 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 22
  • Joined: 03-June 13
  • Location:Iran

Posted 09 June 2013 - 12:55 AM


سلام دوستان
من دارم رو یک پروژه ای کار میکنم که به شدت با زمان (تاریخ و ساعت) درگیره و چون یک وبسایت فارسی هست باید از تاریخ شمسی استفاده کنم. روشهایی که برای این کار معمولا استفاده می شه 2 روش هست:
1- ذخیره مستقیم تاریخ شمسی در دیتابیس
2- ذخیره تاریخ میلادی و تبدیل آن به شمسی در هنگام ذخیره و فراخوانی از دیتابیس
در روش اول اگه داده ها به صورت رشته ذخیره بشه خیلی از عملیات کار با تاریخ رو نمیشه روی اونها انجام داد و اگه داده ها از نوع تاریخ باشه روز های آخر ماه به مشکل بر میخوره (البته به ندرت پیش میاد که روزهای آخر ماه مثلا ماه هایی که 31 روز دارن به مشکل بر بخوره ولی خب احتمالش هست)

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

دوستان کدوم روش رو پیشنهاد میکنن؟؟؟
اگه روش اول؟؟ با مشکلات چطوری برخورد میکنید؟
اگه روش دوم؟؟ اکستنشن یا کلاسی برای مدیریت کامل تبدیلات و عملیات زمان سراغ دارید؟؟؟
ممنون میشم سریع جواب بدین ^_^

0

#2 User is offline   Reza m 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 148
  • Joined: 07-March 12

Posted 09 June 2013 - 02:24 AM

*
POPULAR


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

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



$dateString='1391/05/12';

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

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


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

$timestamp=time();

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

echo $date->format($timestamp);




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

6

#3 User is offline   faridplus 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 87
  • Joined: 28-March 12

Posted 09 June 2013 - 04:20 AM

View PostReza m, on 09 June 2013 - 02:24 AM, said:


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



نمیدونستم همچین چیزی هست ممنون خیلی مفید بود




What you give is what you get (WYGIWYG)

If you liked my post, just give it a +1. that's all!
0

#4 User is offline   Mahmood3D 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 22
  • Joined: 03-June 13
  • Location:Iran

Posted 09 June 2013 - 08:12 AM

View PostReza m, on 09 June 2013 - 02:24 AM, said:


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

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



$dateString='1391/05/12';

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

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


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

$timestamp=time();

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

echo $date->format($timestamp);




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



خیلی ممنون
حتما ازش استفاده میکنم

0

#5 User is offline   Reza m 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 148
  • Joined: 07-March 12

Posted 10 June 2013 - 12:30 AM


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

0

#6 User is offline   srm 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 7
  • Joined: 26-May 13

Posted 17 June 2013 - 06:53 AM

سلام
من از تازه کار کار با این فریم ورک را شروع کردم و برای تبدیل تاریخ قسمت پست وبلاگ از لینک زیر استفاده کردم
http://www.yiiframew...ar/#add-comment
ولی به پیغام زیر هنگام اجرا برخوردم
Property "Post.start_time" is not defined.
مراحل کار را به شکل زیر انجام دادم:
1-فایل را در پوشه افزونه ها اکسترکت کردم
2-کد نوشته شده را در مسیر زیر کپی کردم
protected/views/post/view.php
ممنون می شم اگر کسی کمکم بکند
0

#7 User is offline   Reza m 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 148
  • Joined: 07-March 12

Posted 17 June 2013 - 02:08 PM


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

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

0

#8 User is offline   srm 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 7
  • Joined: 26-May 13

Posted 18 June 2013 - 01:57 AM

ممنون از پاسخ شما،
خیلی لطف کردید
درست شد
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users