r28 / astro-time
使用 Cake\Chronos 的天文计算时间包
v1.0.17
2019-12-19 08:33 UTC
Requires
- cakephp/chronos: ^1.2
Requires (Dev)
- phpunit/phpunit: ^7.5
README
使用 Cake\Chronos 进行天文计算的时间库
要求
- PHP >= 7.1
- composer
- cakephp/chronos
这是什么?
扩展 'Cake\Chronos',计算天文计算所需的数值。
- 本地时间
- UTC 时间
- UT1
- 儒略日(JD)
- 1582/10/15 之后:公历
- 之前:儒略历
- 改正儒略日(MJD)
- 儒略世纪(JC)
- 国际原子时(TAI)
- 地球时(TT)
- 地球动力学时(TDT)
- delta(T) (TT-UT1)
- 地心坐标时(TCG)
- 地心坐标时(TCB)
安装
使用 composer
$ composer require r28/astro-time
用法
-
当前时间
<?php use r28\AstroTime\AstroTime; $time = new AstroTime;
-
设置任何时间
$time = new AstroTime('2019-4-30 00:00:00');
-
设置任何本地时区名称
$time = new AstroTime('2019-4-30 00:00:00', 'Asia/Tokyo');
-
不计算任何天文值(JD,TAI 等)
$time = new AstroTime('2019-4-30 00:00:00', 'Asia/Tokyo', false);
-
通过年、月、日等创建
$time = AstroTime::create(2019, 4, 30, 0, 0, 0); // or $time = AstroTime::create(2019, 4, 30); // => 2019/04/30 00:00:00 // or $time = AstroTime::create(2019, 4, 30, 0, 0, 0, 'Asia/Tokyo', false);
-
通过 UTC 创建
$time = AstroTime::createFromUtc(2019, 4, 29, 15, 0, 0, 'Asia/Tokyo'); // UTC: 2019/04/29 15:00:00 // Local(Asia/Tokyo) : 2019/04/30 00:00:00
-
通过 Unix 时间戳创建
$time = AstroTime::createFromTimestamp(1556550000, 'Asia/Tokyo'); // Local : 2019/04/30 00:00:00
-
通过儒略日创建
$time = AstroTime::createFromJulian(2458603.125, 'Asia/Tokyo'); // Local : 2019/04/30 00:00:00
示例
# DateTime format
echo $time->format('Y-m-d H:i:s'); # 2019-04-30 00:00:00
# Local Time
echo $time->local->format('Y-m-d H:i:s'); # 2019-04-30 00:00:00
# UTC
echo $time->utc->format('Y-m-d H:i:s'); # 2019-04-29 15:00:00
echo $time->toDateTimeString(); # 2019-04-30 00:00:00
# JD
echo $time->jd; # 2458603.125
# MJD
echo $time->mjd; # 58602.625
# JC
echo $time->jc; # 0.19324093086927
# JD => Time
echo AstroTime::createFromJulian($time->jd)->toDateTimeString(); # 2019-04-30 00:00:00
# JD => Datetime String
AstroTime::julian2Datestring($time->jd, 'Y-m-d H:i:s', 'Asia/Tokyo'); # 2019-04-30 00:00:00
# year, month, ...
echo $time->year; # 2019
echo $time->month; # 4
echo $time->day; # 30
echo $time->hour; # 0
echo $time->minute; # 0
echo $time->second; # 0
echo $time->timezoneName; # Asia/Tokyo
echo $time->micro; # 0
echo $time->dayOfWeek; # 2
echo $time->dayOfYear; # 119
echo $time->daysInMonth; # 30
echo $time->quarter; # 2
echo $time->ut1; # 1556550000
echo $time->tt; # 1556550068.184
echo $time->tai; # 2019-04-29 15:00:36
echo $time->delta_t: # 68.184
echo $time->tcg; # 1556550069.1148
echo $time->tcb; # 1556550088.8931
echo $time->tdb; # 1556550068.1839