Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

leafsphp/date

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

50 Commits

Repository files navigation



⏰ Tick

A powerful, elegant date/time manipulation library for PHP with a familiar JavaScript-like API

Latest Stable Version Total Downloads License


🌟 Why Tick?

Tick is a modern, lightweight PHP date/time library designed to make working with dates and times as painless as possible. If you're familiar with JavaScript libraries like Moment.js or Day.js, you'll feel right at home with Tick.

// Get current date in a specific format
echo tick()->format('MMMM Do, YYYY'); // March 31st, 2025
// Chain methods for complex operations
$nextFriday = tick()->add(1, 'week')->startOf('week')->add(4, 'day');
echo $nextFriday->format('dddd, MMMM D'); // Friday, April 11

πŸš€ Installation

Using Leaf CLI (Recommended):

leaf install date

Using Composer :

composer require leafs/date

🏁 Quick Start

// Current date and time
echo tick()->now(); // 2025εΉ΄03月31ζ—₯T12:29:29+00:00
// Parse a specific date
$birthday = tick('1990εΉ΄05月15ζ—₯');
echo $birthday->format('MMMM D, YYYY'); // May 15, 1990
// Manipulate dates
$futureDate = tick()->add(3, 'months')->subtract(2, 'days');
echo $futureDate->format('YYYY-MM-DD'); // 2025εΉ΄06月29ζ—₯

✨ Features

  • πŸ”„ Familiar API - If you know Day.js or Moment.js, you already know Tick
  • πŸͺΆ Lightweight - No heavy dependencies, just pure PHP goodness
  • πŸ”Œ Native Integration - Seamless integration with PHP's DateTime objects
  • 🌐 Timezone Support - Work with dates across different timezones effortlessly
  • πŸ“Š Date Comparison - Easily compare dates with intuitive methods
  • 🧩 Extensible - Add your own custom functionality when needed
  • πŸ” Validation - Validate dates with built-in methods
  • πŸ“ Formatting - Format dates in any way you need

πŸ“š API Reference

Creating Dates

// Current date and time
tick();
tick()->now();
// From string
tick('2025εΉ΄03月31ζ—₯');
tick('2025εΉ΄03月31ζ—₯');
tick('March 31, 2025');
// From DateTime
tick(new DateTime('2025εΉ΄03月31ζ—₯'));
// From tick object
$tomorrow = tick('2025εΉ΄03月31ζ—₯')->add(1, 'day');
tick($tomorrow);

Formatting

$date = tick('2025εΉ΄03月31ζ—₯');
// Standard formats
$date->format('YYYY-MM-DD'); // 2025εΉ΄03月31ζ—₯
$date->format('MMMM D, YYYY'); // March 31, 2025
$date->format('ddd, MMM D, YYYY'); // Mon, Mar 31, 2025
$date->format('YYYY-MM-DD HH:mm:ss'); // 2025εΉ΄03月31ζ—₯ 12:29:29
// Predefined formats
$date->toDateString(); // 2025εΉ΄03月31ζ—₯
$date->toTimeString(); // 12:29:29
$date->toDateTimeString(); // 2025εΉ΄03月31ζ—₯ 12:29:29
$date->toISOString(); // 2025εΉ΄03月31ζ—₯T12:29:29.000Z

Manipulating Dates

$date = tick('2025εΉ΄03月31ζ—₯');
// Add time
$date->add(1, 'day'); // 2025εΉ΄04月01ζ—₯
$date->add(2, 'months'); // 2025εΉ΄05月31ζ—₯
$date->add(1, 'year'); // 2026εΉ΄03月31ζ—₯
// Subtract time
$date->subtract(1, 'week'); // 2025εΉ΄03月24ζ—₯
$date->subtract(3, 'hours'); // 2025εΉ΄03月31ζ—₯ 09:29:29
// Start/End of time units
$date->startOf('month'); // 2025εΉ΄03月01ζ—₯ 00:00:00
$date->endOf('year'); // 2025εΉ΄12月31ζ—₯ 23:59:59.999999
$date->startOf('day'); // 2025εΉ΄03月31ζ—₯ 00:00:00

Comparing Dates

$date = tick('2025εΉ΄03月31ζ—₯');
$date->isBefore('2025εΉ΄04月01ζ—₯'); // true
$date->isAfter('2025εΉ΄03月30ζ—₯'); // true
$date->isSame('2025εΉ΄03月31ζ—₯'); // true
$date->isBetween('2025εΉ΄03月30ζ—₯', '2025εΉ΄04月01ζ—₯'); // true

Working with Timezones

// Create a date in a specific timezone
$tokyoTime = tick('2025εΉ΄03月31ζ—₯', 'Asia/Tokyo');
// Convert between timezones
$newYorkTime = $tokyoTime->setTimezone('America/New_York');

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Made with ❀️ by Leaf PHP

About

πŸ“… Leaf PHP date/time module

Topics

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 2

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /