PHP-精确的Unix时间戳


PHP - Accurate Unix Timestamp

我正试图创建一个准确的Unix时间戳,根据不同的时间段分配给变量。知道如何计算这些时间戳周期吗?

我只能建议您阅读时间手册。

http://php.net/manual/en/function.time.php

今天到最后一个午夜->获取小时+分钟,进行减去24:00小时的计算,使用http://php.net/manual/en/function.abs.php获得您的价值正

所有其他问题都可以通过使用http://php.net/manual/en/function.strtotime.php

在最坏的情况下,将其转换为unix时间并获得差异,您将获得准确的输出,而不必注意leapyears和您提到的其他时间条件,如2月28日至29日的问题。

我可以说你不想这么做吗?存储常规Unix时间戳——如果需要,可以转换为本地时间戳。

当时区发生变化或有人移动夏令时时,数据会非常迅速地被冲洗掉。根据您需要数据的准确性,闰秒(甚至闰分钟)是可能的。

时间处理代码非常复杂和/非常/智能。

  • 存储实时戳
  • 存储标记该时段开始的时间戳
  • 需要时减去
  • 避免不明错误

我是PHP DateTime类的大力支持者。它们缓解了在处理时间问题时出现的许多挫折感。

此示例说明了如何使用它。

<?php
header('Content-type: text/plain');
$today = new DateTime("today");
echo 'Today: ' . $today->format('Y-m-d H:i:s') . "'n";
echo 'Timestamp: ' . $today->getTimestamp() . "'n'n";
$thisweek = new DateTime("this week");
echo 'This Week: ' . $thisweek->format('Y-m-d') . "'n";
echo 'Timestamp: ' . $thisweek->getTimestamp() . "'n'n";
$thismonth = new DateTime("this month");
echo 'This Month: ' . $thismonth->format('Y-m') . "'n";
echo "Days this month: ", $thismonth->format('t') . "'n";
echo 'Timestamp: ' . $thismonth->getTimestamp() . "'n'n";
?>

您可以通过使用DateTimeZone类来增强这一点。