使用php获取unix时间戳

时间:2011-01-17 08:47:01

标签: php timestamp

假设我知道今天是星期一。 我如何在php中使用mktime()来获取上周五和周五之前的unix时间戳?

假设今天的日期是17-01-2011,它是星期一。那我想要14-01-2011 00:00:00和7-01-2011 00:00:00的时间戳。

3 个答案:

答案 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