PHPackages                             belkod/datawizard - 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. belkod/datawizard

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

belkod/datawizard
=================

Небольшие классы-помощники для преобразования чисел или временных данных в строчное представление.

v2.0(1y ago)045GPL-3.0-or-laterPHPPHP &gt;=7.0

Since Jul 4Pushed 1y ago1 watchersCompare

[ Source](https://github.com/BelKoD/DataWizard)[ Packagist](https://packagist.org/packages/belkod/datawizard)[ RSS](/packages/belkod-datawizard/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (1)Dependencies (1)Versions (3)Used By (0)

DataWizard
==========

[](#datawizard)

Небольшие классы-помощники для преобразования чисел или временных меток в строчный формат.

Представленные в данных классах методы были в разное время найдены в Интернете и использовались в разных проектах. В дальнейшем собрал их в один макет для удобства использования.

Использование
-------------

[](#использование)

```
$ composer require belkod/datawizard

```

Примеры преобразование числа в строку
-------------------------------------

[](#примеры-преобразование-числа-в-строку)

### Склонение числа

[](#склонение-числа)

```
use BelKoD\DataWizard\NumericWizard;

$value = 2.5;
echo NumericWizard::morph($value, 'литр', 'литра', 'литров');
// выведет "литра"

```

Можно использовать заготовки склонений из файла `locale/ru/NumericLocale.php`.

```
use BelKoD\DataWizard\locale\ru\NumericLocale;
use BelKoD\DataWizard\NumericWizard;

$value = 2.5;
echo NumericWizard::morph($value, NumericLocale::NUMERICWIZARD_L[0], NumericLocale::NUMERICWIZARD_L[1], NumericLocale::NUMERICWIZARD_L[2]);
// выведет "литра"

```

Чтобы вывести склонение вместе с числом, можно использовать шаблон `%1$s %2$s`.

```
echo NumericWizard::morph($value, 'литр', 'литра', 'литров', '%1$s %2$s');
// выведет "2.5 литра"

```

Сокращенный вариант использования склонения:

```
// константа NumericLocale::NUMERICWIZARD_L = ["литр", "литра", "литров"]
echo NumericWizard::morph_arr($value, NumericLocale::NUMERICWIZARD_L, '%1$s %2$s');
// выведет "2.5 литра"

```

### Арабские числа в римские

[](#арабские-числа-в-римские)

```
use BelKoD\DataWizard\NumericWizard;

$value = 2023;
echo NumericWizard::roman($value);
// выведет "MMXXIII"

```

**Обращаю внимание, если исходное число отрицательное или равно 0, то будет возвращена пустая строка.**

### Целое число в строчный формат

[](#целое-число-в-строчный-формат)

```
use BelKoD\DataWizard\NumericWizard;

$value = 214503;
echo NumericWizard::str($value);
// выведет "двести четырнадцать тысяч пятьсот три"

```

### Цена в строчный формат

[](#цена-в-строчный-формат)

```
use BelKoD\DataWizard\NumericWizard;

$value = 214503.78;
echo NumericWizard::price($value, true);
// выведет "двести четырнадцать тысяч пятьсот три рубля 78 копеек"

echo NumericWizard::price($value, false);
// выведет "двести четырнадцать тысяч пятьсот три рубля семьдесят восемь копеек"

```

Примеры преобразование временной метки в строку
-----------------------------------------------

[](#примеры-преобразование-временной-метки-в-строку)

### Месяц в строку

[](#месяц-в-строку)

```
use BelKoD\DataWizard\DateWizard;
date_default_timezone_set('Europe/Moscow');

// временная метка
$timestamp = strtotime('2022-07-25 14:30:00');

// формат вывода "день месяц год"
$format = 'd F Yг.';

// склонение месяца
$case = 0; // январь
$case = 1; // января
$case = 2; // январе
$case = 3; // январе
$case = 4; // январю
$case = 5; // январём
$case = 6; // январе

// месяц в верхнем регистре
$upper = true;

echo DateWizard::str($timestamp, $format, $case, $upper);
// выведет "25 Июля 2022г."

```

```
// месяц в нижнем регистре
$upper = false;

echo DateWizard::str($timestamp, $format, $case, $upper);
// выведет "25 июля 2022г."

```

```
// формат вывода "день мес год"
$format = 'd M Yг.';
$timestamp = strtotime('2022-07-25 14:30:00');

echo DateWizard::str($timestamp, $format, 0, false);
// выведет "25 июл 2022г."

```

### Дата в римской записи

[](#дата-в-римской-записи)

```
use BelKoD\DataWizard\DateWizard;
date_default_timezone_set('Europe/Moscow');

// временная метка
$timestamp = strtotime('2022-07-25 14:30:00');

// формат вывода "день/месяц/год"
$template = '%1$s/%2$s/%3$s';

echo DateWizard::roman($timestamp, $template);
// выведет "XXV/VII/MMXXII"

```

### Дата и время относительно текущей даты

[](#дата-и-время-относительно-текущей-даты)

```
use BelKoD\DataWizard\DateWizard;
date_default_timezone_set('Europe/Moscow');
// например, текущая дата 2023-07-25 14:30:00

// временная метка
$timestamp = strtotime('2022-07-25 14:30:00');
echo DateWizard::passed($timestamp);
// выведет "14:35 14.12.2023"

$timestamp = strtotime('2023-07-25 13:30:00');
echo DateWizard::passed($timestamp);
// выведет "сегодня в 13:30"

$timestamp = strtotime('2023-07-24 13:30:00');
echo DateWizard::passed($timestamp);
// выведет "вчера в 13:30"

$timestamp = strtotime('2023-07-26 13:30:00');
echo DateWizard::passed($timestamp);
// выведет "завтра в 13:30"

$timestamp = strtotime('2023-06-26 13:30:00');
echo DateWizard::passed($timestamp);
// выведет "26 Июня в 13:30"

$timestamp = strtotime('2023-07-25 14:00:00');
echo DateWizard::passed($timestamp);
// выведет "30 минут назад"

```

###  Health Score

24

—

LowBetter than 31% of packages

Maintenance36

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity40

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 ~499 days

Total

2

Last Release

585d ago

Major Versions

v1.0 → v2.02024-11-14

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/6367721?v=4)[Konstantin](/maintainers/BelKoD)[@BelKoD](https://github.com/BelKoD)

---

Top Contributors

[![BelKoD](https://avatars.githubusercontent.com/u/6367721?v=4)](https://github.com/BelKoD "BelKoD (6 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/belkod-datawizard/health.svg)

```
[![Health](https://phpackages.com/badges/belkod-datawizard/health.svg)](https://phpackages.com/packages/belkod-datawizard)
```

###  Alternatives

[contributte/neonizer

Collection of useful scripts for manipulaton with NEON files. Support composer pre-install / post-install events. Set/get parameters, validate files.

14852.4k](/packages/contributte-neonizer)[php-mcp/schema

PHP Data Transfer Objects (DTOs) and Enums for the Model Context Protocol (MCP) schema.

19414.4k4](/packages/php-mcp-schema)

PHPackages © 2026

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