数据值 / 时间
时间值对象、解析器和格式化工具
1.1.2
2022-10-24 09:59 UTC
Requires
- php: >=7.2.0
- data-values/common: ~1.0|~0.4.0|~0.3.0
- data-values/data-values: ~3.0|~2.0|~1.0|~0.1
- data-values/interfaces: ~1.0|~0.2.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-08-30 01:09:03 UTC
README
包含用于表示时间信息的值对象、将用户输入转换为这些值对象的解析器以及将这些对象转换回用户可消费表示的格式化工具的库。
它是 DataValues 库集 的一部分。
在 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
添加了空白字符修剪。 - 修复了
IsoTimestampParser
和TimeValue
接受没有日期的时间的问题。 - 修复了
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)
- 修复了
IsoTimestampParser
和TimeValue
接受没有月份的日期。 - 修复了
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_GREGORIAN
和TimeValue::CALENDAR_JULIAN
。 - 将所有
TimeValue::PRECISION_...
常量重命名为小写字母,例如将PRECISION_10a
重命名为PRECISION_YEAR10
,同时保留向后兼容的别名。 IsoTimestampParser
现在接受按照ISO格式带有可选冒号的时值。PhpDateTimeParser
现在接受以逗号分隔的日期。
其他更改
- 修复了
IsoTimestampParser
无法在午夜设置精度为小时、分钟或秒的问题。 - 弃用了
IsoTimestampParser::CALENDAR_GREGORIAN
和IsoTimestampParser::CALENDAR_JULIAN
。 - 弃用了
TimeFormatter::CALENDAR_GREGORIAN
和TimeFormatter::CALENDAR_JULIAN
。
0.7.0 (2015-04-20)
破坏性变更
- 将
TimeParser
重命名为IsoTimestampParser
。 - 空字符串现在在
TimeValue
构造函数中被检测为无效的日历模型。
新增内容
- 添加了
MonthNameUnlocalizer
。 - 添加了
PhpDateTimeParser
。 IsoTimestampParser
现在可以解析类似ISO 8601的各种YMD顺序的时戳字符串。CalendarModelParser
现在接受通过选项提供的URI和本地化日历名称。
其他更改
- 现在在
TimeValue
中的年份被填充为4位数,并删除了额外的前导零。 - 对
TimeValue
的文档进行了主要更新。 IsoTimestampParser
和TimeFormatter
的构造函数参数现在是可选的。- 修复了
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