我正在尝试根据不同的时间段创建准确的 Unix 时间戳以分配给变量。知道如何计算这些时间戳周期吗?
问问题
245 次
3 回答
3
我只能建议你阅读时间手册。
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 时间并获得差异,您将获得准确的输出,而无需关注闰年和您提到的其他时间条件,例如 2 月 28 日问题。
于 2012-09-07T21:50:09.953 回答
0
我可以说你不想这样做吗?存储常规的 Unix 时间戳——如果需要,可以转换为本地时间戳。
当时区发生变化或有人改变夏令时时,数据会变得非常快,非常快。根据您需要数据的准确程度,闰秒(甚至闰分钟)是可能的。
时间处理代码非常复杂且/非常/智能。
- 存储实时时间戳。
- 存储标记该时期开始的时间戳。
- 需要时减去。
- 避免晦涩的错误。
于 2012-09-07T22:02:47.727 回答
0
我是 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类来增强它。
于 2012-09-07T22:10:52.600 回答