数据值/时间

时间值对象、解析器和格式化工具

1.1.2 2022-10-24 09:59 UTC

README

包含用于表示时间信息的值对象、将用户输入转换为这些值对象的解析器以及将这些对象转换回用户可消费表示的格式化工具的库。

它是 DataValues 库集 的一部分。

Build Status Code Coverage Scrutinizer Quality Score

Packagist 上: 最新稳定版本 下载次数

安装

建议使用 Composer 来使用此库。

Composer

要将此包作为本地项目依赖项添加到项目中,只需在项目的 composer.json 文件中添加对 data-values/time 的依赖。以下是一个仅定义对此包版本 1.x 依赖的 composer.json 文件的简单示例

    {
        "require": {
            "data-values/time": "~1.1"
        }
    }

手动

通过 git 或其他方式获取此包的代码,同时获取所有依赖项。可以在 composer.json 文件的 "require" 部分找到依赖项列表。然后负责自动加载在 src 目录中定义的类。

测试

此库附带一套 PHPUnit 测试,涵盖所有非平凡代码。您可以使用根目录中找到的 PHPUnit 配置文件运行这些测试。这些测试也可以通过 TravisCI 运行,因为根目录中也提供了一个 TravisCI 配置文件。

作者

DataValues Time 是由维基数据团队编写的,由 Wikimedia Germany 员工为 Wikidata 项目 编写。

发行说明

1.1.2 (2022-10-24)

  • 允许与 data-values/common 1.1.0 和 data-values/interfaces 1.x 一起安装

1.1.1 (2022-10-21)

  • 允许与 DataValues 3.1 一起安装

1.1.0 (2022-10-21)

  • 提高了与 PHP 8.1 的兼容性;特别是现在实现了新的 __serialize/__unserialize 方法(除了仍然支持的 Serializable 接口)。请确保还使用 data-values/data-values 版本 3.1.0(或更高版本)以保持哈希稳定。
  • 添加了对 PHP 8.1.7 中添加的 YYYY-DDD 格式(年份的第 DDD 天)的支持。(在较早的 PHP 版本中不受支持。)

1.0.4 (2021-07-15)

  • 支持带有纪元的月+年日期

1.0.3 (2021-03-18)

  • 更新了主要的 data-values/* 版本

1.0.2 (2020-08-20)

  • 修复了解析 Unicode 月份名称

1.0.1 (2018-09-18)

  • 解析并拒绝无效的日历选项

1.0.0 (2018-08-02)

  • 删除了 DATAVALUES_TIME_VERSION 常量
  • 允许与 DataValues 2.x 一起安装

0.8.6 (2017-09-06)

  • YearTimeParser 添加了空白字符修剪。
  • 修复了 IsoTimestampParserTimeValue 接受没有日期的时间的问题。
  • 修复了 MonthNameUnlocalizer 意外替换已本地化的数字月份的问题。
  • 修复了 PhpDateTimeParser 错误解释只有一个或两个数字的输入。
  • 已弃用 TimeValue::newFromArray
  • 将所需的PHP版本从5.3提升到5.5。

0.8.5 (2017-08-09)

  • 移除了MediaWiki集成。
  • 提升data-values/common依赖项。

0.8.4 (2016-04-20)

  • 添加了MonthNameProvider接口。
  • 添加了MonolingualMonthNameProvider
  • 添加了YearMonthTimeParser
  • 添加了YearTimeParser

0.8.3 (2016-03-16)

  • 将可选的ParserOptions参数添加到YearMonthDayTimeParser构造函数中。
  • 修复了YearMonthDayTimeParser不接受日历模型和精度选项的问题。
  • 修复了IsoTimestampParser不接受字符串精度的问题。
  • 修复了IsoTimestampParser在无效精度上不一定抛出异常的问题。
  • 修复了解析器中的FORMAT_NAME常量。

0.8.2 (2015-09-15)

  • 修复了IsoTimestampParserTimeValue接受没有月份的日期。
  • 修复了YearMonthDayTimeParser拒绝YDM日期的问题。
  • YearMonthDayTimeParser接受一些月份和日期相同的日期。

0.8.1 (2015-08-14)

新增内容

  • 添加了YearMonthDayTimeParser
  • PhpDateTimeParser现在接受以YMD顺序分隔的日期。

其他更改

  • 该组件现在可以与DataValues Interfaces 0.2.x一起安装。
  • 该组件现在可以与DataValues Common 0.3.x一起安装。

0.8.0 (2015-06-26)

破坏性变更

  • IsoTimestampParser自动检测日历模型,不再默认为公历。
  • 移除了IsoTimestampParser::PRECISION_NONE,改用null
  • TimeValue的闰秒范围从[0..62]更改为[0..61]。

新增内容

  • 添加了EraParser
  • 添加了TimeValue::CALENDAR_GREGORIANTimeValue::CALENDAR_JULIAN
  • 将所有TimeValue::PRECISION_...常量重命名为小写字母,例如将PRECISION_10a重命名为PRECISION_YEAR10,同时保留向后兼容的别名。
  • IsoTimestampParser现在接受按照ISO格式带有可选冒号的时值。
  • PhpDateTimeParser现在接受以逗号分隔的日期。

其他更改

  • 修复了IsoTimestampParser无法在午夜设置精度为小时、分钟或秒的问题。
  • 弃用了IsoTimestampParser::CALENDAR_GREGORIANIsoTimestampParser::CALENDAR_JULIAN
  • 弃用了TimeFormatter::CALENDAR_GREGORIANTimeFormatter::CALENDAR_JULIAN

0.7.0 (2015-04-20)

破坏性变更

  • TimeParser重命名为IsoTimestampParser
  • 空字符串现在在TimeValue构造函数中被检测为无效的日历模型。

新增内容

  • 添加了MonthNameUnlocalizer
  • 添加了PhpDateTimeParser
  • IsoTimestampParser现在可以解析类似ISO 8601的各种YMD顺序的时戳字符串。
  • CalendarModelParser现在接受通过选项提供的URI和本地化日历名称。

其他更改

  • 现在在TimeValue中的年份被填充为4位数,并删除了额外的前导零。
  • TimeValue的文档进行了主要更新。
  • IsoTimestampParserTimeFormatter的构造函数参数现在是可选的。
  • 修复了TimeFormatter委托给通过选项提供的ISO时戳格式化器的问题。
  • TimeFormatter不再输出日历模型。

0.6.1 (2014-10-09)

  • 使组件可安装与DataValues 1.x一起使用。

0.6.0 (2014-06-05)

  • 添加了TimeValueCalculator。
  • 移除了TimeIsoFormatter接口。
  • 在ValueParsers上引入了FORMAT_NAME类常量,以便按照预期使用它们作为expectedFormat。
  • 更改ValueParsers,在构造ParseException时传递rawValue和expectedFormat参数。

0.5.2 (2014-04-28)

  • 修复了解析以零结尾的年份的问题,当年份为<=4000且>=4000 BC时,默认精度为年。

0.5.1 (2014-03-24)

  • 修复了DataValues/Common的composer版本。

0.5.0 (2014-03-21)

  • 移除了TimeParser::SIGN_PATTERN常量。
  • 移除了TimeParser::TIME_PATTERN常量。
  • 修复了bug 62730。TimeParser现在在只有月份和年份或只有年份时返回正确的精度。

0.4.0 (2014-03-14)

  • 纠正了拼写错误:calender/calander -> calendar

0.3.0 (2014-03-13)

  • 将CalenderModelParser重命名为CalendarModelParser。
  • 向TimeParser添加了Calandar和Precision选项。

0.2.0 (2014-02-11)

添加功能

  • TimeParser
  • CalenderModelParser

0.1.0 (2013-11-17)

初始发布包含这些功能

  • TimeValue
  • TimeFormatter
  • TimeIsoFormatter

链接