marzzelo / uconverter
可定制物理单位转换器 - 示例库 - 请勿在生产环境中使用
1.0.5
2023-02-17 11:30 UTC
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-17 15:19:51 UTC
README
uconverter是一个可定制的单位转换器。
安装
composer require marzzelo/uconverter
用法
实例化一个新的单位转换器
$converter = new UnitsConverter([
'gf' => 1000.0,
'N' => 9.8066,
...
]);
(所有量必须相等,即:1000 gf == 9.8066 N)。
示例:达因转换为千克
print $converter->kgf(1, 'daN'); // 1.019721
在构建后添加新单位
$converter->lbf = 2.2046;
$converter->kgf(2.2046, 'klbf'); // 1000
倍数和分数
包含的前缀
'da' => 10,
'a' => 1e-18,
'f' => 1e-15,
'p' => 1e-12,
'n' => 1e-9,
'u' => 1e-6,
'm' => 1e-3,
'c' => 0.01,
'd' => 0.1,
'h' => 100,
'k' => 1000,
'M' => 1e6,
'G' => 1e9,
'T' => 1e12,
'P' => 1e15,
'E' => 1e18,
示例(太牛顿转换为微牛顿)
$converter->uN(1.0, 'TN'); // 1.0e+18
使用包含的转换器
要使用包含的转换器,请使用静态方法UnitsConverter::getConverter(<name>)
。
包含的转换器有'force', 'length'和'pressure'。
$fconverter = UnitsConverter::getConverter('force');
$pconverter = UnitsConverter::getConverter('pressure');
$lconverter = UnitsConverter::getConverter('length');
print $fconverter->N(1, 'kgf'); // 9.806652048217
print $pconverter->Pa(1, 'MPa'); // 1e6
print $lconverter->cm(1, 'in'); // 2.5400000025908
可用的内置单位
力
N, lbf, gf, ouncef, poundf, dyne, sthene
及其倍数
daN, kN, klbf, kgf, kpoundf等。
压力
psi, Pa, gmm2, bar, atm, mHg, inHg, inH2O, torr
及其倍数
kPa, hPa, MPa, kgmm2, cmHg, mmHg, mbar等。
长度
m, in, ft, hand, ly, mi, yd, pc, AU, Ao
及其倍数
dm, cm, mm, um, dam, hm, km, ...