承接 kibatic/timezone-bundle 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

kibatic/timezone-bundle

最新稳定版本:v2.3.0

Composer 安装命令:

composer require kibatic/timezone-bundle

包简介

Used to manage the display of a \DateTimeInterface in the right timezone.

README 文档

README

Build Status

This bundle is used to manage the display of a \DateTimeInterface in the right timezone.

The common case is a project with all the \DateTimeInterface objects are in UTC (in the DB, in PHP, ...) but the user can change the timezone in his preferences in order to display the dates with its own timezone.

Quick start

installation

composer require kibatic/timezone-bundle

in config.yml

kibatic_timezone:
    default_display_timezone: "Europe/Paris"    # mandatory
    timezone_provider: "App\\Timezone\\MyTimezoneProvider"   # optional

in php

/** @var \DateTimeInterface $date */
$date = new \DateTimeImmutable();

$tzAdjuster = $container->get('kibatic_timezone.adjuster');
$dateTimeImmutable = $tzAdjuster->asDateTimeImmutable($date);
$dateTime = $tzAdjuster->asDateTime($date);

Convert \DateTime to a given timezone with AdjusterUtil

$date = new \DateTime('2019-10-03T15:28:06.256+02:00');
$dateModified = AdjusterUtil::changeTimezone($date, new \DateTimeZone('GMT+0'));

Format datetime with timezone in twig

in twig the syntax of tzdate is exactly the same as the twig date filter. (it calls the default date filter. The only difference is that the timezone argument is set to false by default)

{{ date | tzdate }}
{{ date | tzdate('Y/m/d') }}

Format Datetime in twig with localization (intl)

You can use the new twig : tz_format_datetime filter. It has the same interface than the format_datetime filter from twig/extra-bundle, but with a $timezone to false by default.

{{ date | tz_format_datetime('short', 'short') }}
{{ date | tz_format_datetime('long', 'long') }}
{{ date | tz_format_datetime }}

Deprecated Localized date

You can use the new twig : tzlocalizeddate filter. It has the same interface than the localizeddate filter from twig-extension intl, but with a $timezone to false by default.

{{ date | tzlocalizeddate('short', 'short') }}
{{ date | tzlocalizeddate('long', 'long') }}
{{ date | tzlocalizeddate }}

Timezone Provider

A timezone Provider is a service that implements TimezoneProviderInterface.

It's a service that is used to know the current timezone to display (for a webpage, an API, in a command, for an export,...)

It implements TimezoneProviderInterface

The adjuster as twig global variable

If needed, you can add the adjuster as a twig global variable :

in config/packages/twig.yaml, you can add

twig:
  globals:
    timezoneAdjuster: '@kibatic_timezone.adjuster'

and then in any twig you can use the adjuster

<div>Timezone : {{ timezoneAdjuster.displayTimezone().name }}</div>

{# convertir un datetime en datetime avec la bone timezone #}
{{ timezoneAdjuster.asDateTime(date) }}

Versions

2020-10-16 : v2.1.0

  • NEW : refactoring : add a AdjusterUtil class that allows to convert datetimes without instanciating Adjuster service
  • FIX : microsecond management. The last library removed microseconds from datetime.

2020-10-16 : v2.0.0

MAJOR BC BREAKS !!

  • symfony 5.1+ only
  • Twig 3+
  • twig/extra-bundle instead of twig/extensions
  • tzlocalizeddate is deprecated. Use tz_format_datetime instead

2019-10-14 : v1.1.1

  • hum... fix unit tests in travis for v1.1.0

2019-10-14 : v1.1.0

  • Readme updated
  • add tzlocalizeddate twig filter

2019-10-11 : v1.0.2

  • only for sf4.3+

2019-10-11 : v1.0.1

  • fix deprecation in Configurator for sf4

2019-10-11 : v1.0.0

  • initial publication

统计信息

  • 总下载量: 488
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-10-10

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固