Получите начальную и конечную метки времени Unix для данного месяца и года в php - PullRequest
9 голосов
/ 03 сентября 2010

Я хочу найти метку времени для первого дня месяца (скажем, 1 сентября 2010 года и 0:00) и последнего дня месяца (скажем, 31 сентября 23:59).

Ответы [ 3 ]

18 голосов
/ 03 сентября 2010

Если у вас есть эти даты как строки, вы можете просто использовать strtotime () , если у вас есть только частичная информация, вы можете использовать mktime () .

В сентябре только 30 дней;)

Пример:

$month = 9;
$year  = 2010;

$first = mktime(0,0,0,$month,1,$year);
echo date('r', $first);

$last = mktime(23,59,00,$month+1,0,$year);
echo date('r', $last);
4 голосов
/ 03 сентября 2010

Если вы используете PHP 5.3 (не пробуйте это с 5.2, парсер даты там работает иначе), вы можете говорить:

<?php

$date = "2010-05-10 00:00:00";

$x = new DateTime($date);

$x->modify("last day of this month");
$x->modify("last second");

echo $x->format("Y-m-d H:i:s");
// 2010-05-30 23:59:59
$timestamp = $x->getTimestamp();
1 голос
/ 03 сентября 2010

Может быть, это можно сделать проще, но вы поняли:

<?php

$start = mktime(0, 0, 1, $month, 1, $year);
$end   = mktime(23, 59, 00, $month, date('t', $month), $year);

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...