假设我知道今天是星期一。
我如何在php中使用mktime()
来获取上周五和周五之前的unix时间戳?
假设今天的日期是17-01-2011,它是星期一。那我想要14-01-2011 00:00:00和7-01-2011 00:00:00的时间戳。
答案 0 :(得分:7)
查看strtotime
http://php.net/manual/en/function.strtotime.php ..解决大部分问题 - 否则你必须亲自约会日期
答案 1 :(得分:1)
这样的事情应该做
<?php
// Check if today is a Monday
if (date('N') == 1)
{
// Create timestamp for today at 00:00:00
$today = mktime('0', '0', '0', date('n'), date('j'), date('Y'));
$last_friday = $today - 60*60*24*3;
$last_last_friday = $today - 60*60*24*10;
// Convert to a readable format as a check
echo 'Last Friday\'s timestamp is ' . $last_friday . ' (' . strftime('%d-%m-%Y %H:%M:%S', $last_friday).') <br />';
echo 'Last last Friday\'s timestamp is ' . $last_last_friday . ' (' . strftime('%d-%m-%Y %H:%M:%S', $last_last_friday).')';
}
答案 2 :(得分:1)
比你想象的要简单得多(甚至我就此而言)!从本质上讲,strtotime("last friday", time())
获得了......上个星期五的时间戳!
首先获取当前时间戳:
$unixNow = time();
echo date('r', $unixNow) . "<br />";
//Thu, 10 Jan 2013 15:14:19 +0000
上周五:
$unixLastFriday = strtotime("last friday", $unixNow);
echo date('r', $unixLastFriday) . "<br />";
//Fri, 04 Jan 2013 00:00:00 +0000
在此之前的星期五:
$unixFridayBeforeThat = strtotime("last friday", $unixLastFriday);
echo date('r', $unixFridayBeforeThat) . "<br />";
//Fri, 28 Dec 2012 00:00:00 +0000