romeoz/rock-date

一个简单的支持多国语言的PHP DateTime库

0.12.0 2015-11-07 02:41 UTC

This package is not auto-updated.

Last update: 2024-09-24 03:33:48 UTC


README

Latest Stable Version Total Downloads Build Status HHVM Status Coverage Status License

功能

  • 支持多种格式(如m/d/Ym/d/Y g:i A等)
  • 自定义格式和选项
  • 多国语言支持
  • 扩展的DateInterval(支持日期之间的总月、周、小时、分钟、秒数)
  • 独立模块/组件,用于Rock框架

目录

安装

从命令行

composer require romeoz/rock-date

在您的composer.json文件中

{
    "require": {
        "romeoz/rock-date": "*"
    }
}

快速开始

use rock\date\DateTime;

(new DateTime)->format(); // output: current date in the format Y-m-d H:i:s

// default format 
(new DateTime)->isoDate(); // output: current date in the format Y-m-d

// modify date
DateTime::set('1988-11-12')->date(); //output: 11/12/1988

自定义格式

$datetime = DateTime::set('1988-11-12');
$datetime->setFormats(['shortDate' => 'j / F / Y']);

$datetime->shortDate(); // output: 12 / November / 1988

自定义选项格式

$datetime = new DateTime('1988-11-12');
$datetime->setFormatOption('ago', function (DateTime $datetime) {
    return floor((time() - $datetime->getTimestamp()) / 86400) . ' days ago';
});

$datetime->format('d F Y, ago'); // output: 12 November 1988, 9574 days ago

多国语言

$dateTime = new DateTime('1988-11-12');
$dateTime->setLocale('ru');

$dateTime->format('j  F  Y'); // output: 12  ноября  1988 

日期之间的差异/间隔

$diff = (new DateTime('2012-02-01'))->diff(new DateTime('2015-01-01'));

echo $diff->total_months; // output: 36
echo $diff->format('%R%tm months'); // output: +36 months

添加了额外的占位符

  • %tm - 总月数
  • %tw - 总周数
  • %th - 总小时数
  • %ti - 总分钟数
  • %ts - 总秒数

文档

需求

  • PHP 5.4+

许可证

DateTime库是开源软件,受MIT许可证许可。