/** * Persian to Gregorian * @param $date * @param string $format * @param string $inputLocale * @param string $locale * * @return string */ public function pTog($date, $format = 'yyyy/MM/dd H:m:s', $inputLocale = 'fa', $locale = 'en') { $date = new IntlDatetime($date, 'Asia/Tehran', 'persian', $inputLocale); $date->setCalendar('Gregorian'); $date->setLocale($locale); return $date->format($format); }
function testSet() { $date = new IntlDatetime('now', null, 'gregorian'); $date->set('2009/1/2 01:00 PM'); $result = $date->format('yyyy/MM/dd HH:mm:ss'); $this->assertEquals($result, '2009/01/02 13:00:00'); $date->set('2009-10-25'); $result = $date->format('yyyy/MM/dd HH:mm:ss'); $this->assertEquals($result, '2009/10/25 00:00:00'); $date->set('09/05/02 14:00'); $result = $date->format('yyyy/MM/dd HH:mm:ss'); $this->assertEquals($result, '2009/05/02 14:00:00'); $date->set('14 Jan 2010'); $result = $date->format('yyyy/MM/dd HH:mm:ss'); $this->assertEquals($result, '2010/01/14 00:00:00'); $date->set('Wed, 7 Jan 09'); $result = $date->format('yyyy/MM/dd HH:mm:ss'); $this->assertEquals($result, '2009/01/07 00:00:00'); $date->set('Monday, 15 March 2010 06:22:30 PM'); $result = $date->format('yyyy/MM/dd HH:mm:ss'); $this->assertEquals($result, '2010/03/15 18:22:30'); $date->set(strtotime('25 Dec 2009')); $result = $date->format('yyyy/MM/dd HH:mm:ss'); $this->assertEquals($result, '2009/12/25 00:00:00'); $date->set(new DateTime('15 Jan 2010')); $result = $date->format('yyyy/MM/dd HH:mm:ss'); $this->assertEquals($result, '2010/01/15 00:00:00'); $date->set('now'); $result = $date->getTimestamp(); $expected = strtotime('now'); $this->assertEquals($result, $expected); $date->set('yesterday'); $result = $date->getTimestamp(); $expected = strtotime('yesterday'); $this->assertEquals($result, $expected); $date->setTimezone('Asia/Tehran'); $date->set('2010/01/10', 'UTC'); $result = $date->format('yyyy/MM/dd HH:mm:ss'); $this->assertEquals($result, '2010/01/10 03:30:00'); $date->set('2010/07/10', 'UTC'); $result = $date->format('yyyy/MM/dd HH:mm:ss'); $this->assertEquals($result, '2010/07/10 04:30:00'); $date->set('20100412182457', null, 'yyyyMMddHHmmss'); $result = $date->format('yyyy/MM/dd HH:mm:ss'); $this->assertEquals($result, '2010/04/12 18:24:57'); $date->setLocale('fa'); $date->set('دوشنبه ۱۵ مارس ۲۰۱۰ ۱۲:۳۲:۴۵'); $result = $date->format('yyyy/MM/dd HH:mm:ss'); $this->assertEquals($result, '۲۰۱۰/۰۳/۱۵ ۱۲:۳۲:۴۵'); $date->setCalendar('persian'); $date->set('۲۳ دی ۱۳۸۸'); $result = $date->format('yyyy/MM/dd HH:mm:ss'); $this->assertEquals($result, '۱۳۸۸/۱۰/۲۳ ۰۰:۰۰:۰۰'); $date->set('۱۳۸۸-۱۱-۲۲ ۲۳:۵۰'); $result = $date->format('yyyy/MM/dd HH:mm:ss'); $this->assertEquals($result, '۱۳۸۸/۱۱/۲۲ ۲۳:۵۰:۰۰'); }