narmafzam / jalali-date-bundle
一个用于处理Jalali日期,包括日期选择器的symfony 3 bundle
0.2.0
2019-06-16 13:19 UTC
Requires
- php: ^5.5.9 || ^7.0
- ext-intl: *
README
一个用于处理Jalali日期,包括日期选择器的symfony 3 bundle
安装
- 通过Composer安装
$ php composer require narmafzam/jalali-date-bundle
- 添加到AppKernel
class AppKernel extends Kernel { public function registerBundles() { $bundles = array( new Narmafzam\JalaliDateBundle\NarmafzamJalaliDateBundle(), } }
- 安装资源
$ php app/console assets:install
服务
服务名称: narmafzam.j_date_service
功能
- georgianToPersian
将格鲁吉亚日历(DateTime)转换为波斯(String)。
参数- georgian: DateTime (默认:
null
) - format: string (默认:
yyyy/MM/dd
) 查看Intl格式 - locale: string (默认:
fa
) (例如: fa, fa_IR, en, en_US, en_UK, ...) - calendar: string (默认:
persian
) (例如: gregorian, persian, islamic, ...) - latinizeDigit: bool (默认:
false
) 将波斯数字转换为拉丁数字。
- georgian: DateTime (默认:
- persianToGeorgian
将波斯日历(String)转换为格鲁吉亚(DateTime)。
参数- persian: string
- format: string (默认:
yyyy/MM/dd
) 查看Intl格式 - locale: string (默认:
fa
) (例如: fa, fa_IR, en, en_US, en_UK, ...) - calendar: string (默认:
persian
) (例如: gregorian, persian, islamic, ...)
- intlDateTimeInstance
返回IntlDateTime的新实例。 访问Ali Farhadi的博客
示例
$shamsiString = $this->get('narmafzam.j_date_service')->georgianToPersian(new \DateTime(), 'yyyy-MM-dd E'); //result: ۱۳۹۴-۱۱-۲۲ دوشنبه $shamsiString = $this->get('narmafzam.j_date_service')->persianToGeorgian('1394-11-22 دوشنبه', 'yyyy-MM-dd E'); //result: An instance of DateTime
Twig
功能
- gpDate
将格鲁吉亚日历(DateTime)转换为波斯(String)。
参数- georgian: DateTime (默认:
null
) - format: string (默认:
yyyy/MM/dd
) 查看Intl格式 - locale: string (默认:
fa
) (例如: fa, fa_IR, en, en_US, en_UK, ...) - calendar: string (默认:
persian
) (例如: gregorian, persian, islamic, ...) - latinizeDigit: bool (默认:
false
) 将波斯数字转换为拉丁数字。
- georgian: DateTime (默认:
- pgDate
将波斯日历(String)转换为格鲁吉亚(DateTime)。
参数- persian: string
- format: string (默认:
yyyy/MM/dd
) 查看Intl格式 - locale: string (默认:
fa
) (例如: fa, fa_IR, en, en_US, en_UK, ...) - calendar: string (默认:
persian
) (例如: gregorian, persian, islamic, ...)
示例
{{ date|gpDate }} <br> {{ date|gpDate('yyyy-MM-dd E') }} <br> {{ '1394/11/22'|gpDate }} <br> {{ '1394-11-22 دوشنبه'|gpDate('yyyy-MM-dd E') }} <br>
表单
类型名称: NarmafzamDateType
参数
- serverFormat: string (默认:
yyyy/MM/dd
) 查看Intl格式 - clientFormat: string (默认:
yy/m/d
) 查看DatePicker格式 - attr: array
您可以在此参数中添加其他DatePicker选项,但必须将大写字母转换为小写,并在其前面添加连字符。(见示例)
注意: serverFormat和clientFormat的结果必须相同。
示例
$builder ->add('date', NarmafzamJalaliDateType::class, [ 'serverFormat' => 'yyyy/MM/dd', 'pickerOptions' => [ 'Format' => 'yyyy/MM/dd', 'EnableTimePicker' => true, 'GroupId' => 'group1', 'FromDate' => true, 'DisableBeforeToday' => true, ] ]) ->add('date2', NarmafzamJalaliDateType::class, [ 'serverFormat' => 'yyyy-MM-dd E', 'pickerOptions' => [ 'Format' => 'yyyy/MM/dd', 'EnableTimePicker' => true, 'GroupId' => 'group1', 'ToDate' => true, ] ])
日期选择器
要求
- Bootstrap
- Jquery
将以下行添加到base.html.twig
文件的head标签中
<head> ... <link rel="stylesheet" href="{{ asset('bundles/narmafzam/jalali-date/MdBootstrapPersianDateTimePicker/css/jquery.Bootstrap-PersianDateTimePicker.css') }}" /> ... </head>
将以下行添加到base.html.twig
文件的body标签末尾
<script type="text/javascript" src="{{ asset('bundles/narmafzam/jalali-date/MdBootstrapPersianDateTimePicker/js/jalaali.js') }}"></script> <script type="text/javascript" src="{{ asset('bundles/narmafzam/jalali-date/MdBootstrapPersianDateTimePicker/js/jquery.Bootstrap-PersianDateTimePicker.js') }}"></script>
将以下行添加到app/config.yml
文件中
twig: form_themes: - 'NarmafzamJalaliDateBundle:Form:form_s_date.html.twig'
参考