unixslayer/php-conversion

此包已 弃用 并不再维护。未建议替代包。

单位转换和尺寸转换库。最初从 crisu83/php-conversion 分支。

0.5.3 2015-09-17 11:31 UTC

This package is not auto-updated.

Last update: 2020-08-11 09:16:15 UTC


README

Build Status

PHP 中转换单位和尺寸的库。

支持的单位

  • 加速度
  • 角度
  • 面积
  • 数字信息
  • 电流
  • 频率
  • 燃料消耗
  • 长度
  • 光强度
  • 质量
  • 功率
  • 压力
  • 速度
  • 温度
  • 时间
  • 速度
  • 电压
  • 体积

支持的大小

  • 帽子尺寸
  • 儿童鞋码

支持的数量基

  • 二进制
  • 八进制
  • 十进制
  • 十六进制

用法

示例用法

use Unixslayer\PhpConversion\Quantity\DigitalInformation\DigitalInformation;
use Unixslayer\PhpConversion\Quantity\Length\Length;
use Unixslayer\PhpConversion\NumberBase\NumberBase;
use Unixslayer\PhpConversion\Size\HatSize\HatSize;
use Unixslayer\PhpConversion\Size\ShoeSize\ChildShoeSize;

use Unixslayer\PhpConversion\Quantity\Length\Unit as LengthUnit;
use Unixslayer\PhpConversion\Quantity\DigitalInformation\Unit as DIUnit;
use Unixslayer\PhpConversion\Size\HatSize\System as HatSizeSystem;
use Unixslayer\PhpConversion\Size\ShoeSize\System as ShoeSizeSystem;

require(dirname(__DIR__) . '/vendor/autoload.php');

$length = new Length(1, LengthUnit::METRE);
echo $length . '<br>';
echo $length->add(1, LengthUnit::FOOT) . '<br>';
echo $length->add(5)->sub(2, LengthUnit::FOOT) . '<br>';
echo $length->to(LengthUnit::YARD) . '<br>';

echo '<br>';

$di = new DigitalInformation(1000, DIUnit::MEGABYTE);
echo $di . '<br>';
echo $di->to(DIUnit::BIT)->out(2, '.', '') . '<br>';
echo $di->to(DIUnit::GIGABIT) . '<br>';
echo $di->to(DIUnit::TERABYTE)->out(10) . '<br>';

echo '<br>';

$number = new NumberBase("0xff", NumberBase::HEXADECIMAL);
echo $number . '<br>';
echo $number->to(NumberBase::DECIMAL) . '<br>';
echo $number->to(NumberBase::OCTAL) . '<br>';
echo $number->to(NumberBase::BINARY) . '<br>';

echo '<br>';

$hatSize = new HatSize(40, HatSizeSystem::CENTIMETRE);
echo $hatSize . '<br>';
echo $hatSize->to(HatSizeSystem::AMERICAN) . '<br>';
echo $hatSize->to(HatSizeSystem::BRITISH) . '<br>';
echo $hatSize->to(HatSizeSystem::INCH) . '<br>';

echo '<br>';

$shoeSize = new ChildShoeSize(20, ShoeSizeSystem::EUROPEAN);
echo $shoeSize . '<br>';
echo $shoeSize->to(ShoeSizeSystem::AMERICAN) . '<br>';
echo $shoeSize->to(ShoeSizeSystem::BRITISH) . '<br>';
echo $shoeSize->to(ShoeSizeSystem::INCH) . '<br>';

示例输出

1.00 m
1.30 m
5.70 m
6.23 yd

1,000.00 MB
8388629474.89 b
7.81 Gb
0.0009534451 TB

0xff
255
o377
b11111111

40 cm
4 US
4 7/8 UK
15.748 in

20 EUR
4.5 - 5 US
3.5 - 4 UK
4.625 in

自定义单位

$unit = new Area(1, 'customUnit1');
$unit->setNative('customUnit1');
$unit->setConversionMap([
    'customUnit1' => 1,
    'customUnit2' => 241.12596335,
]);

$newUnit = $unit->to('customUnit2');