получить метку времени Unix, используя php - PullRequest
4 голосов
/ 17 января 2011

Предположим, я знаю, что сегодняшний день - понедельник.Как я могу использовать mktime() в php, чтобы получить метку времени Unix за последнюю пятницу и пятницу до этого ??

предположим, что сегодняшняя дата 17-01-2011 и понедельник.Тогда я хочу метку времени для 14-01-2011 00:00:00 и 7-01-2011 00: 00: 00.

Ответы [ 3 ]

7 голосов
/ 17 января 2011

проверить strtotime http://php.net/manual/en/function.strtotime.php ... решает большинство проблем такого рода - в противном случае вы должны сами назначить дату

1 голос
/ 10 января 2013

Гораздо проще, чем вы думали (или даже я в этом отношении)! По сути, 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
1 голос
/ 17 января 2011

Нечто подобное должно делать

<?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).')';  
    }
...