cse/helpers-date

该助手库允许您轻松使用 DATE。更改格式、加减天数、计算日期差、获取季度等,所有这些功能都在这个库中提供。

1.0.5 2019-05-06 04:51 UTC

This package is auto-updated.

Last update: 2024-09-06 17:29:17 UTC


README

英语 | 俄语

DATE CSE 助手

Travis (.org) Codecov Scrutinizer code quality

Packagist Minimum PHP Version Packagist GitHub repo size

该助手库允许您轻松使用 DATE。更改格式、加减天数、计算日期差、获取季度等,所有这些功能都在这个库中提供。

项目仓库: https://github.com/cs-eliseev/helpers-date

DATE

if (Date::isToday($date)) {
    $date = Date::changeDay($date, -7);
}
$mount = Date::diff($date, 'now', '%m');
Date::getQuarterByNumberMonth($mount);

简介

CSE 助手 是一系列以 PHP 编写的简单函数库,供人们使用。

尽管 PHP 是互联网的主要编程语言,但其功能仍不够。DATE CSE 助手使用了更改格式、加减天数、计算日期差、获取季度等方法。

CSE 助手 是为了快速开发 Web 应用而创建的。

CSE 助手项目

以下是一些有关如何初始化库和执行常见命令的信息。

安装

您可以在此处找到此项目的最新版本。

Composer

执行以下命令以获取包的最新版本

composer require cse/helpers-date

或者 composer.json 文件应包含以下内容

{
    "require": {
        "cse/helpers-date": "*"
    }
}

Git

在本地上克隆此仓库

git clone https://github.com/cs-eliseev/helpers-date.git

下载

在此处下载最新版本.

使用

该类包含静态方法,方便在任何项目中使用。请参阅示例 examples-date.php

通过日期获取时间

示例

Date::getTime('01.01.2018');
// 1514754000

使用当前日期

Date::getTime();
Date::getTime('now');
// timestemp

使用相对时间

Date::getTime('+1 week 2 days 4 hours 2 seconds');
// timestemp

将日期转换为格式

示例

Date::toFormat('2018-01-01');
// 01.01.2018

使用时间戳

Date::toFormat(1514754000);
// 01.01.2018

更改默认格式

Date::toFormat(1514754000, 'Y/m/d');
// 2018/01/01

使用当前日期

Date::toFormat();
Date::toFormat('now');
// d.m.Y

使用相对时间

Date::toFormat('+1 week 2 days 4 hours 2 seconds');

将日期转换为 SQL

示例

Date::toSQL('01.01.2018');
// 2018-01-01

使用时间戳

Date::toSQL(1514754000);
// 2018-01-01

使用当前日期

Date::toSQL();
Date::toSQL('now');
// Y-m-d

使用相对时间

Date::toSQL('+1 week 2 days 4 hours 2 seconds');
// Y-m-d

日期差

示例

Date::diff('2018-07-01', '2018-07-01');
// 0

日期格式小时

Date::diff('2018-07-01 02:00:00', '01.01.2018 00:00:00', '%h');
// 2

使用时间戳

Date::diff(strtotime('2018-09-02'), strtotime('2018-07-02'), '%m'));
// 2

其他格式

Date::diff('31.01.2018', 1514754000, '%d/%m'));
// 30/0

当前日期

Date::diff('31.01.2018');
Date::diff('31.01.2018', 'now');
// %d

使用相对时间

Date::diff'31.01.2018', '+1 week');
// %d

当前日期

示例

Date::current();
// d.m.Y

设置格式

Date::current(Date::FORMAT_SQL);
// Y-m-d

极端月份的日期

获取月份的最后一天

Date::extremeMonthDate('11.01.2018');
// 2018-01-31

获取月份的第一天

Date::extremeMonthDate('28.02.2018', 'Y-m-01');
// 2018-02-01

使用时间戳

Date::extremeMonthDate(strtotime('28.02.2018'), 'Y-m-01');
// 2018-02-01

使用当前日期

Date::extremeMonthDate();
Date::extremeMonthDate('now');
// Y-m-last_mounth_day

使用相对日期

Date::extremeMonthDate('+1 week');
// Y-m-last_mounth_day + 1 week

获取季度

示例

Date::getQuarter('31.12.2018 23:59:59');
// 4

使用时间戳

Date::getQuarter(1514754000);
// 1

使用当前日期

Date::getQuarter();
Date::getQuarter('now');
// quarter

使用相对时间

Date::getQuarter('+1 week 2 days 4 hours 2 seconds');
// quarter

按月份数字获取季度

示例

Date::getQuarterByNumberMonth(12);
// 4

更改日期

添加日期

Date::changeDay('01.01.2018', 1);
// 02.01.2018

减去日期

Date::changeDay('2018-01-01', -1);
// 31.12.2017

更改格式

Date::changeDay('01.01.2018', -1, Date::FORMAT_SQL);
// 2017-12-31

使用时间戳

Date::changeDay(timestamp('01.01.2018'), -1, Date::FORMAT_SQL);
// 2017-12-31

检查今天

示例

Date::isToday('01.01.2018 00:00:00');
// false

使用时间戳

Date::isToday(1519804800);
// false

使用相对时间

Date::isToday('now');
// true

检查日期

示例

Date::checkDateByTimestamp((new \DateTime('now'))->format('U'));
// true

设置时区

示例

Date::setTimezone();
// UTC

设置时区

Date::setTimezone('GMT');
// GMT

获取时区

示例

Date::getTimezone();
// UTC

检查时区

示例

Date::isTimezone();
// true

设置时区

Date::isTimezone('GMT');
// false

测试与代码覆盖率

使用 PHPUnit 进行单元测试。单元测试确保类和方法确实按预期执行。

PHPUnit 的一般文档可在 https://phpunit.de/documentation.html 找到。

要运行 PHPUnit 单元测试,请执行

phpunit PATH/TO/PROJECT/tests/

如果您想获取代码覆盖率报告,请使用以下命令

phpunit --coverage-html ./report PATH/TO/PROJECT/tests/

使用了 PHPUnit 默认配置

phpunit --configuration PATH/TO/PROJECT/phpunit.xml

捐赠

您可以通过以下链接支持此项目:这里。您还可以通过为项目做出贡献或报告错误来提供帮助。即使提出功能建议也是极好的。任何帮助都十分感激。

许可证

DATE CSE HELPERS 是一个在 MIT 许可证下授权的开源 PHP 库。请参阅许可证文件以获取更多信息。

GitHub @cs-eliseev