Perl:如何知道 24 小时是不是已过?
Posted
技术标签:
【中文标题】Perl:如何知道 24 小时是不是已过?【英文标题】:Perl: how to know if 24hrs have passed?Perl:如何知道 24 小时是否已过? 【发布时间】:2014-03-01 08:04:54 【问题描述】:我在 mysql 表上有一个时间戳字段,我想知道该时间戳是否为 24 小时或更长时间。在 Perl 中最好的方法是什么?
【问题讨论】:
这完全取决于数据库负载,无论您是使用数据库上的工具还是 perl 进程中的工具。下面有一些很好的答案。 【参考方案1】:返回 24 小时前时间戳的 SQL。
SELECT UNIX_TIMESTAMP(NOW() - INTERVAL 24 HOUR)
现在如果你的时间戳是
【讨论】:
【参考方案2】:最好的办法是让数据库来完成这项工作。示例见SQL statement to select all rows from previous day。
【讨论】:
如果您只是添加一些简单的SQL作为示例,这将是一个更好的响应【参考方案3】:通过时间戳,我假设它是 Unix 时间戳,即自纪元以来的秒数。
my $ts = 1393662619;
my $day_24hr = 24 * 60 * 60; ## seconds in 24 hrs
my $prev_time = time() - $day_24hr; ## 24hours ago
if ( $ts < $prev_time )
print "timestamp is 24 hour old";
【讨论】:
似乎是个好方法,但我不明白你的 $ts 吗?它是一个mysql数据类型“时间戳”,格式是(即)1970-01-31 00:00:00 它按预期工作,但我必须添加代码以将 mysql 时间戳转换为 unix 时间戳【参考方案4】:您可以为此使用localtime
。
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($unix_timestamp);
【讨论】:
然后你自己建立时间戳?以上是关于Perl:如何知道 24 小时是不是已过?的主要内容,如果未能解决你的问题,请参考以下文章
由于 DST 时钟向前,perl DateTime 和不存在的时间用户输入
一个域名是用哪里的DNS来解析的,电脑怎么知道找哪一个DNS呢? 我注册域名的时候会在服务商那里配置DNS解析,一般需要24小时后才能访问,我想知道,解析后的这个数据是不是会同步到世界上所有的