我需要一个函数将波斯日历中的日期转换为对应的格里高利日期。我按照this page的例#3编写了以下函数。不幸的是,它确实有用吗?这有什么问题?使用Intl扩展名的正确方法是什么?
function convert($time, $fromCalendar = 'gregorian', $toCalender = 'persian', $fromFormat = 'yyyy-MM-dd HH:mm:ss',
$toFormat = 'yyyy-MM-dd HH:mm:ss', $timezone = null, $local = 'fa_IR')
{
$formatter = IntlDateFormatter::create($local . '@calendar:' . $fromCalendar, null, null, $timezone, null, $fromFormat);
$formatter->setCalendar(IntlCalendar::createInstance(null, $local . '@calendar:' . $toCalender));
$output = $formatter->format($formatter->parse($time));
if ($output) return $output;
return $formatter->getErrorMessage();
}
可以在此处找到有关Intl的详细介绍:http://devzone.zend.com/1500/internationalization-in-php-53/
答案 0 :(得分:1)
这似乎很有希望:http://www.phpclasses.org/package/4852-PHP-Convert-and-format-dates-of-the-Persian-calendar.html
然后你会这样做:
$persian=new persian_date();
echo $persian->date('y-m-d H:i:s');