divineomega/php-dot-net-ticks

此包帮助PHP开发者与转换.NET ticks,.NET DateTime对象使用的精确时间测量形式。

v1.0.0 2018-02-07 15:11 UTC

This package is auto-updated.

Last update: 2024-09-06 09:25:30 UTC


README

Build Status Coverage Status StyleCI

此包帮助PHP开发者与转换.NET ticks,.NET DateTime对象使用的精确时间测量形式。

特性

您可以使用此库执行以下操作,以及更多。

  • 将ticks转换为时间戳
  • 将ticks转换为DateTime对象
  • 将ticks转换为Carbon日期对象
  • 获取当前时间的ticks
  • 将时间戳转换为ticks

.NET ticks是什么?

一个tick表示一百纳秒或一百万分之一秒。在毫秒中有10,000个ticks,在秒中有1,000万个ticks。

此属性值 [DateTime.Ticks] 代表自0001年1月1日午夜12:00:00(公历0001年1月1日0:00:00 UTC)以来经过的100纳秒间隔数,代表DateTime.MinValue。它不包括可归因于闰秒的ticks数。

来源:.NET API参考:DateTime.Tick属性

安装

您可以使用Composer轻松安装PHP .NET Ticks包。只需从您的项目根目录运行以下命令。

composer require divineomega/php-dot-net-ticks

如果您之前从未使用过Composer依赖管理器,请访问Composer网站获取更多信息。

使用方法

首先您需要创建一个新的Ticks对象。这可以通过几种方式完成。

use DivineOmega\DotNetTicks\Ticks;

// Current time
$ticks = new Ticks();

// Specific time in ticks
$ticks = new Ticks(636536021491253348);

// From timestamp
$ticks = Ticks::createFromTimestamp(1518005349);

然后您可以在Ticks对象上调用方法以获取或转换所需的值。

$ticks = $ticks->ticks();       // Ticks

$time = $ticks->timestamp();    // UNIX timstamp

$dateTime = $ticks->dateTime(); // PHP DateTime object
$carbon = $ticks->carbon();     // Carbon date object

如果您愿意,可以将这两个步骤合并为一步,如下面的示例所示。

// Get current time in ticks
$nowInTicks = (new Ticks())->ticks();

// Convert ticks to timestamp
$timestamp = (new Ticks(636536021491253348))->timestamp();

// Convert timestamp to ticks
$ticks = Ticks::createFromTimestamp(1518005349)->ticks();