PHPackages                             carminemm/units-conversion - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. carminemm/units-conversion

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

carminemm/units-conversion
==========================

Convert digital units, temperature, weight and large numbers at a glance

v1.2.1(11mo ago)0151MITPHPPHP ^8.1

Since Feb 18Pushed 11mo ago1 watchersCompare

[ Source](https://github.com/CarmineMM/units-conversion)[ Packagist](https://packagist.org/packages/carminemm/units-conversion)[ RSS](/packages/carminemm-units-conversion/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (4)Used By (1)

Conversion of units
===================

[](#conversion-of-units)

Use conversion of digital units such as GB or MB, Celsius, Fahrenheit, Kilograms, Ounces, or time conversions like years or months to weeks.

Requirements
------------

[](#requirements)

- `PHP >= 8.1`
- MIT License. ***Feel free to use this project***. ***Leave a star ⭐ or support the project!***

[![paypal](https://camo.githubusercontent.com/1c212254bf14c516a7571bbb8b8a1679967080453a6ba3a222491e973b6877dd/68747470733a2f2f7777772e70617970616c6f626a656374732e636f6d2f70745f42522f42522f692f62746e2f62746e5f646f6e61746543435f4c472e676966)](https://www.paypal.com/paypalme/carminemaggio)

Installation
------------

[](#installation)

```
composer require carminemm/units-conversion
```

Classes available in the bookstore
----------------------------------

[](#classes-available-in-the-bookstore)

There are multiple classes that you can use to make multiple conversions, the available ones are shown.

```
// Conversion of digital units, MB, KB, GB, TB, etc ...
CarmineMM\UnitsConversion\Conversion\DigitalUnitsConversion::class;

// Time conversions days, months, weeks, etc ...
CarmineMM\UnitsConversion\Conversion\TimeConversion::class;

// Weight conversions, ounces, pounds, kilograms, tons, etc ...
CarmineMM\UnitsConversion\Conversion\WeightUnitsConversion::class;

// Conversion de temperature, Celsius, Fahrenheit, Kelvin, Rankine
CarmineMM\UnitsConversion\Conversion\TemperatureUnitsConversion::class;

// Conversion of kilometers, miles, feet, inches, centimeters, etc ...
CarmineMM\UnitsConversion\Conversion\LengthUnitsConversion::class;
```

All these classes inherit the same configurations and methods shown below:

Use
---

[](#use)

### Units conversion

[](#units-conversion)

The basic use of this library is to represent the units passed by parameter and to be able to show them (understandable for users) or convert them, as well as perform operations with them.

```
use CarmineMM\UnitsConversion\Conversion\DigitalUnitsConversion;
use CarmineMM\UnitsConversion\Conversion\TimeConversion;
use CarmineMM\UnitsConversion\Conversion\WeightUnitsConversion;
use CarmineMM\UnitsConversion\Conversion\TemperatureUnitsConversion;

$digitalUnits = DigitalUnitsConversion::make(12345); // 12.345 bits
$timeUnits = TimeConversion::make(12345); // 12.345 Seconds
$weightUnits = WeightUnitsConversion::make(12345); // 12.345 Milligram
$TemperatureUnits = TemperatureUnitsConversion::make(12345); // 12.345 Celsius

$digitalUnits->to('KB'); // Convert to KB: 1.506
$timeUnits->to('minutes'); // Convert to minutes: 0.2057
$weightUnits->to('hectograms'); // Convert to Hectograms: 0.12345
$TemperatureUnits->toFahrenheit(); // Convert to Fahrenheit: 22253
```

### Show in readable user

[](#show-in-readable-user)

You can show the conversions into a more accurate and readable conversion or convert it and show it, delimiting the decimals if necessary. In addition, the bookstore can try to discover the unit of measure dynamically, or passing it by parameter.

```
use CarmineMM\UnitsConversion\Conversion\DigitalUnitsConversion;
use CarmineMM\UnitsConversion\Conversion\TimeConversion;

$digitalUnits = new DigitalUnitsConversion(12345, 'kb'); // 12.345 Kilobytes
$timeUnits = new TimeConversion('12345 seconds'); // 12.345 Seconds

$digitalUnits->display('bytes') // 12641280 bytes
$timeUnits->show(); // 3.43 hours
```

### Do you want to know which conversions available?

[](#do-you-want-to-know-which-conversions-available)

```
use CarmineMM\UnitsConversion\Conversion\DigitalUnitsConversion;
use CarmineMM\UnitsConversion\Conversion\TimeConversion;

(new TimeConversion)->getAvailableUnits();         // Available units
(new DigitalUnitsConversion)->getAvailableUnits(); // Available units
```

### Methods available for conversion (returns int or float)

[](#methods-available-for-conversion-returns-int-or-float)

The bookstore tries to discover since what unit you want to convert or the destiny of the conversion.

```
// Fast conversion without instance
//It only admits exact units to conversion, listed in 'getAvailableUnits()'
DigitalUnitsConversion::convert(number: 12323, unit: 'KB', unitTo: 'byte');

// The 'to' method can discover unity although it can be written in different ways
$units->to('GB'); // Turn Gigabyte
$units->to('gb'); // Turn Gigabyte
$units->to('gigabyte'); // Turn Gigabyte
$units->to('gigabytes'); // Turn Gigabyte
$units->to('Gigabytes'); // Turn Gigabyte
```

### Methods available for conversion and display

[](#methods-available-for-conversion-and-display)

Like the previous one, the bookstore tries to discover where to convert and to convert. The difference is that this show the name of the conversion.

```
$temperatureUnits->display('°C');
$digitalUnits->display('KB');
$digitalUnits->display('kilobyte');
$digitalUnits->display('Kilobytes');

$digitalUnits->show(decimals: 3); // Discover the closest unit for conversion and show
$digitalUnits->smartConversion(); // Discover the closest unit for conversion and show
```

### Mathematical conversions

[](#mathematical-conversions)

You can perform mathematical operations using the bookstore, and add, subtract or compare different conversion units, for example, add 300 megabytes to 2 gigabytes. Or compare whether 2300 seconds is greater than 130 minutes.

### Factory methods for digital units conversion

[](#factory-methods-for-digital-units-conversion)

The `DigitalUnitsConversion` class provides static factory methods to create instances from specific digital units:

```
use CarmineMM\UnitsConversion\Conversion\DigitalUnitsConversion;

// Create instances from different digital units
$units = DigitalUnitsConversion::fromBits(1024); // 1024 bits
$units = DigitalUnitsConversion::fromBytes(1024); // 1024 bytes
$units = DigitalUnitsConversion::fromKilobytes(1); // 1 KB
$units = DigitalUnitsConversion::fromMegabytes(1); // 1 MB
$units = DigitalUnitsConversion::fromGigabytes(1); // 1 GB
$units = DigitalUnitsConversion::fromTerabytes(1); // 1 TB
$units = DigitalUnitsConversion::fromPetabytes(1); // 1 PB
```

These methods provide a more explicit way to create instances from specific digital units, making the code more readable and self-documenting.

### Direct conversion methods

[](#direct-conversion-methods)

In addition to the generic `to()` method, the `DigitalUnitsConversion` class provides specific methods for direct conversion to each digital unit:

```
use CarmineMM\UnitsConversion\Conversion\DigitalUnitsConversion;

$units = DigitalUnitsConversion::make(1024, 'KB'); // 1024 KB

// Direct conversion methods
$bits = $units->toBits(); // Convert to bits
$bytes = $units->toBytes(); // Convert to bytes
$kb = $units->toKilobytes(); // Convert to kilobytes
$mb = $units->toMegabytes(); // Convert to megabytes
$gb = $units->toGigabytes(); // Convert to gigabytes
$tb = $units->toTerabytes(); // Convert to terabytes
$pb = $units->toPetabytes(); // Convert to petabytes
```

These methods provide a more explicit way to convert between units, making the code more readable and self-documenting.

#### Adding and subtracting units

[](#adding-and-subtracting-units)

```
use CarmineMM\UnitsConversion\Conversion\DigitalUnitsConversion;

$units = DigitalUnitsConversion::make('2 GB');

$units->add(230, 'MB'); //Add 230 MB to the '2 GB'
$units->add(1098931); // Add 1,098,931 bits to '2 GB'

$units->less('1.3 GB'); // Restar 1.3 GB a los '2 GB'

//The units are stored in the current
$units->getCurrent();

// Or show the remaining after the sums and subtractions
$units->smartConversion();
```

#### Compare from units

[](#compare-from-units)

Buying units can be easy thanks to discover units.

```
use CarmineMM\UnitsConversion\Conversion\DigitalUnitsConversion;

$units = DigitalUnitsConversion::make('5 GB');

// Compare if the current value is greater than the past by parameter
if ( $units->isGreaterThan(6144, 'MB') ) {
    //...
}

// Less than ...
if ( $units->isLessThan(4000, 'MB') ) {
    //...
}

// Like the smallest
if ( $units->isSameOrLess(4.69, 'GB') ) {
    //...
}
// Equal or greater
if ( $units->isSameOrGreater(5.2, 'GB') ) {
    //...
}

// Exactly the same
if ( $units->same(5, 'GB') ) {
    //...
}
```

Restore the units
-----------------

[](#restore-the-units)

Sometimes when you have an instance and you have done operations with it, it may be necessary to restart, or restore the value, to the original.

```
use CarmineMM\UnitsConversion\Conversion\DigitalUnitsConversion;

$units = DigitalUnitsConversion::make('5 GB');

$units->less('1 GB');
$units->less('2 GB');

$units->reset(); // Reset to 5 GB
```

Or you can also double the instance to have a new for other conversions.

```
use CarmineMM\UnitsConversion\Conversion\DigitalUnitsConversion;

$units = DigitalUnitsConversion::make('5 GB');

$units->less('1 GB');
$units->less('2 GB');

$newUnit = $units->originTo();
```

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance55

Moderate activity, may be stable

Popularity6

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~56 days

Total

3

Last Release

333d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7a2583d23e673089d13d17fd5438932c96210900158962d9d535b35d3ddf3822?d=identicon)[CarmineMM](/maintainers/CarmineMM)

---

Top Contributors

[![CarmineMM](https://avatars.githubusercontent.com/u/49706627?v=4)](https://github.com/CarmineMM "CarmineMM (32 commits)")

### Embed Badge

![Health badge](/badges/carminemm-units-conversion/health.svg)

```
[![Health](https://phpackages.com/badges/carminemm-units-conversion/health.svg)](https://phpackages.com/packages/carminemm-units-conversion)
```

###  Alternatives

[numero2/contao-proper-filenames

Replaces special characters in filenames right after upload

1353.0k](/packages/numero2-contao-proper-filenames)[devaly/wordpress-routes

Manage rewrites and routes in WordPress with this dead-simple plugin

101.2k](/packages/devaly-wordpress-routes)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
