Unix时间戳记在考虑DST的情况下计算日期

时间:2013-04-03 10:50:04

标签: php timestamp dst

如何计算昨天我们记住dst的unix时间戳?

通常情况下我会做$timestamp - 86400但是当昨天没有夏令时,今天就没有用。

2 个答案:

答案 0 :(得分:0)

怎么样:

$startTime = mktime(0, 0, 0, date('m'), date('d')-1, date('Y'));     
$endTime = mktime(23, 59, 59, date('m'), date('d')-1, date('Y'));  

这是来自:

http://en.kioskea.net/faq/1861-mktime-timestamp-yesterday-last-month-etc

答案 1 :(得分:0)

您应该使用DateTime类,并且您必须在时间字符串中指定英格兰时区(BST)。像这样:

$dt = new DateTime('Yesterday BST');
$timestamp = $dt->getTimestamp(); // first second of 'yesterday'

上面的示例将尊重夏令时。