magroski/time-buddy

A library to handle time and date interval

v1.0.2 2022-11-28 19:39 UTC

This package is auto-updated.

Last update: 2024-03-28 22:16:56 UTC


README

Latest Stable Version Minimum PHP Version CircleCI GitHub license

This library provides some syntax sugar around time and date manipulation, including on-the-fly format localization without the need to add multiple locales to your environment.

Locales are available on the folder src/Provider. Pull-requests are welcome.

Usage examples

Creation

# Default
$time = new Time();

# From unix timestamp
$time = Time::createFromUnixTstamp(time());

# From DateTime
$dateTime = new \DateTime();
$time = Time::createFromDateTime($dateTime);

# From DateTimeImmutable
$immutable = new \DateTimeImmutable();
$time = new Time($immutable);

Operations (Time is immutable, so operations generate new objects)

$firstTime = new Time();

$secondTime = $firstTime->add(100);

$thirdTime = $firstTime->subtract(100);

Formatting

$time = new Time();
$time->format('d F Y'); # 20 May 2019

$time->setLocale('pt_BR');
$time->format('d F Y'); # 20 Maio 2019

Generating a Date Interval

$time = new Time();
$laterTime = new Time();

# From Time
$interval = $time->diff($laterTime);

# Staticaly
$interval = DateInterval::createFromTime($time, $laterTime);

# Staticaly from a single time
$interval = DateInterval::createFromTime($time); # Second argument is current time