rangelreale/mdh

PHP 多数据处理器 - 可配置的 PHP 格式解析器和格式化器

dev-master 2018-04-13 14:20 UTC

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