narmafzam/jalali-date-bundle

一个用于处理Jalali日期,包括日期选择器的symfony 3 bundle

安装: 225

依赖项: 0

建议者: 0

安全: 0

星标: 4

关注者: 2

分支: 2

开放性问题: 1

语言:JavaScript

类型:symfony-bundle

0.2.0 2019-06-16 13:19 UTC

This package is auto-updated.

Last update: 2024-09-26 04:22:02 UTC


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) 将波斯数字转换为拉丁数字。
  • 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) 将波斯数字转换为拉丁数字。
  • 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'

参考