【问题标题】:How to set default date to Persian date in PHP?如何在 PHP 中将默认日期设置为波斯日期?
【发布时间】:2018-08-13 03:08:32
【问题描述】:

如何在 PHP 中将默认日期设置为波斯日期?

说,如果我回显这个函数 date('Ym-d') 那么它将显示 2018-03-05 但我想要 1396-12-14波斯日期。请帮忙

【问题讨论】:

标签: php datepicker timezone jquerydatetimepicker persian-calendar


【解决方案1】:

请查看:http://php.net/manual/en/intldateformatter.create.php

<?php

// date_default_timezone_set('Asia/Tehran');

$now = new DateTime();

$formatter = new IntlDateFormatter(
                "fa_IR@calendar=persian", 
                IntlDateFormatter::FULL, 
                    IntlDateFormatter::FULL, 
                'Asia/Tehran', 
                IntlDateFormatter::TRADITIONAL, 
                "yyyy-MM-dd");

// It is now: 1396-12-14
echo 'It is now: ' . convert_to_number($formatter->format($now)) ."<br />"; 

// It is now: ۱۳۹۶-۱۲-۱۴
echo 'It is now: ' . $formatter->format($now) ."<br />"; 


// convert to number
function convert_to_number($string) {
    $persian = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
    $arabic = ['٩', '٨', '٧', '٦', '٥', '٤', '٣', '٢', '١','٠'];

    $num = range(0, 9);
    $convertedPersianNums = str_replace($persian, $num, $string);
    $englishNumbersOnly = str_replace($arabic, $num, $convertedPersianNums);

    return $englishNumbersOnly;
}

【讨论】:

  • 感谢大家,但这无济于事。我想要的是,如果我回显 date('Y-m-d') 那么它应该返回 1396-12-15 而不是 2018-03-06。
  • 有没有更好的方法将数字转换成英文?
  • 使用“en_US@calendar=persian”,获取英文编号。
  • 如果使用en_US而不是fa_IR那么你不需要使用convert_to_number函数。
  • 这个函数只是转换日期,它不返回时间!,我想要日期和时间 "Y-m-d h:i"
猜你喜欢
  • 2014-03-27
  • 2019-08-19
  • 2012-11-19
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多