nickmoline / laravel-stardate
Laravel 包,用于将日期转换为星历日期。
v1.0.0
2023-07-24 07:08 UTC
Requires
- illuminate/support: >=9.0
Requires (Dev)
- orchestra/testbench: ^8.5
- phpunit/phpunit: ^9.5
- sempro/phpunit-pretty-print: ^1.2
README
基于《星际迷航》星舰时代的 Laravel Carbon 扩展宏。
星历计算器
Carbon::actdStardate()
将 Carbon 日期转换为 ST:ACTD 角色扮演游戏中所使用的伪星历,该格式定义在 他们的玩家手册中Carbon::tngStardate(int $precision = 1) : string
使用trekguide.com反向工程出的公式,将 Carbon 日期格式化为 TNG 星历。您可以在括号中传递一个整数来调整小数精度(默认为 1 位数字)Carbon::createFromStardate(float|string $stardate) : Carbon
从给定的星历创建一个 Carbon 实例(允许您将其转换回相应的地球日期)Carbon::contemporaryStardate(int $precision = 1) : string
使用与Carbon::tngStardate()
相同的公式将 Carbon 日期格式化为 TNG 星历,但首先增加 331 年。这样,1987 年的日期看起来就像是在 2363 年(允许与 TNG 时代系列剧播出的日期大致对应)。对于在 2318 年之前计算的日期,这将产生负的星门。
《星际迷航》假日
受 dansoppelsa/laravel-carbon-macros 的启发,增加了一些用于《星际迷航》特定假日的功能。
- isHolidayName() 函数,如果给定假日则返回 true
- nextHolidayName() 函数,返回当前日期对象之后给定假日的下一个实例的
Carbon
日期 - lastHolidayName() 函数,返回当前日期对象之前给定假日的上一个实例的
Carbon
日期 - untilHolidayName() 函数,返回表示当前日期对象之后给定假日下一个实例的时间的
CarbonInterval
- sinceHolidayName() 函数,返回表示从给定假日上一个实例到当前日期对象的时间的
CarbonInterval
还有一个通用的 trekHoliday 宏,如果当前假日是假日,则返回当前假日的字符串名称,还有一个 isTrekHoliday,如果当前日期对象是任何这些假日,则返回 true。
当前可用假日
- 首次接触日: 4月5日
- 《星际迷航》日: 9月8日,这是《星际迷航》首播的周年纪念日,CBS/Paramount+ 通常会在这天大肆宣传
- 皮卡德船长日: 6月16日
- 边疆日: 4月14日。
- 这有点棘手,我们知道它是在4月,并且庆祝的是 NX-01 的发射。我们在《破碎之碗》中得到的具体日期是4月16日,但根据那个位置,发射至少提前了一天。Startrek.com 提到了它,在4月14日发了一条帖子,所以我们选择了那个日期。
- 祖先之夜: 4月22日
假日示例
$date = Carbon::parse("April 5, 2023"); $date->isFirstContactDay(); # true $date->isStarTrekDay(); # false $date->nextAncestorsEve(); # "April 22, 2023" $date->untilNextAncestorsEve(); # "17 days" $date->trekHoliday(); # "First Contact Day" $date->isTrekHoliday(); # true $date->addDays(2); $date->trekHoliday(); # null $date->isTrekHoliday(); # false $date->sinceFirstContactDay(); # "2 days"