rangelreale / mdh
PHP 多数据处理器 - 可配置的 PHP 格式解析器和格式化器
dev-master
2018-04-13 14:20 UTC
Requires (Dev)
- phpunit/phpunit: ^6.4
This package is not auto-updated.
Last update: 2024-09-14 19:58:47 UTC
README
PHP 多数据处理器(MDH)是一个用于格式化和解析数据到和从 PHP 格式的库。使用多个转换器,可以转换不同格式。
该库非常灵活,允许注册数据类型、回退到默认转换和覆盖任何转换。
日期和时间值始终以 DateTime 类返回。该库接受时间戳作为输入,但输出始终是 DateTime 类。
使用方法
// creates the base class (the converters "default" and "user" are default) $mdh = new \RangelReale\mdh\MDH(); // use the en-US locale $mdh->locale = 'en-US'; // add a mysql converter $mdh->setConverter('db', new \RangelReale\mdh\mysql\MySQLConverter($mdh)); // using the "db" converter, format a datetime from PHP format to MySQL format echo $mdh->db->format('datetime', time()), '<br/>'; // 2016-12-09 13:26:42 // using the "db" converter, parse a datetime from MySQL format to PHP format echo print_r($mdh->db->parse('datetime', '2016-01-10 15:00:00'), true), '<br/>'; // DateTime Object ( [date] => 2016-01-10 15:00:00.000000 [timezone_type] => 3 [timezone] => America/Sao_Paulo ) // using the "user" converter, format a datetime from PHP format to user format (using locale) echo $mdh->user->format('datetime', time()), '<br/>'; // 12/9/16, 1:34 PM // convert a datetime value from "db" to "user" format echo $mdh->convert('db', 'user', 'datetime', '2016-10-10 21:00:00'), '<br/>'; // 10/10/16, 9:00 PM
多转换
可以同时转换多个字段。
$multi = new \RangelReale\mdh\MultiConversion([ 'value' => 'decimal', 'date_created' => 'datetime', ]); echo print_r($mdh->convertMulti(null, 'user', $multi, [ 'value' => 15.1872, 'date_created' => time(), ])->result, true), '<br/>'; // Array ( [value] => 15.19 [date_created] => 12/9/16, 1:39 PM )
默认数据类型
- raw
- text
- 布尔值
- 整数
- 日期
- 时间
- 日期时间
- 小数
- 货币
- 小数完整
- 字节
- 时间段
- 位掩码
作者
Rangel Reale