dgB*_*gBP 3 perl epoch localtime
我从数据库得到一些时间,我试图按月使用纪元表格存储它们.所以我可以有一些随机的时间,如:
1354120744
1328978360
1297388332
Run Code Online (Sandbox Code Playgroud)
并且对于每一个我想要找到代表该月的第一个的纪元值,因此对于最后一个时间戳,它将是:
1296518400(使用可爱epochconverter.com).
我知道我可以使用POSIX mktime将时间戳减少到几天,等等并相应地更改它们,就像我之前做过的帖子的答案一样:如何在Perl中回顾几个月,考虑到月份的不同日期?
我遇到的麻烦是,虽然我可以零次,但我担心通过更改日期与星期几不匹配,所以基本上是无效日期.这可能是一种不必要的担心; 如果时间得到验证,我不知道如果一周中的错误日期会有所不同.
我看不到任何其他似乎有用的POSIX方法.任何帮助赞赏!
自从我遇到DateTime后,我就不再担心时间戳问题:
$ perl -MDateTime -E 'say DateTime->from_epoch(epoch => 1354120744)->truncate(to => "month")->epoch;'
1351728000
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是使用Time :: Local将localtime结果转换回epoch,并根据需要将适当的值强制为0或1.请注意,星期几不是它所期望的输入值之一,因此您不必担心如果出错则会发生什么.
$start_of_month_epoch = timelocal(0, 0, 0, 1, $month, $year);
| 归档时间: |
|
| 查看次数: |
1097 次 |
| 最近记录: |