|
|
|
| Скажите, возможно ли, имея метку time() (которая была сделана n времени назад) превратить в дату вида число.месяц.год? | |
|
|
|
|
|
|
|
для: neadekvat
(24.06.2009 в 14:59)
| |
<?
$t = time(); //полученная некогда метка
//когда-то далее
echo date("d-m-Y", $t);
|
| |
|
|
|
|
|
|
|
для: sim5
(24.06.2009 в 15:03)
| | Благодарю)
Прошу еще помощи. Может, я вообще зря с time связался
Мне нужно сохранить время (необязательно секунды, нужен хотя бы день), так же нужно сохранить дату, которая будет ровно через год. А за месяц до того, как будет год (или через 11 месяцев) нужно будет сообщить, что собстно остался месяц. Вызвать функцию через 11 месяцев - это ладно, а как все это посчитать - в уме не укладывается. | |
|
|
|
|
|
|
|
для: neadekvat
(24.06.2009 в 15:11)
| | date("n", $t); - получает только месяц из ранее сохраненной метки, а значит если при этом будет получаться 12, то сообщайте чего вам нужно.
PS. Ой стоп, вам нужно сравнить ранее полученный месяц с месяцем текущего года что ли?
<?
if (date("n") - date("n", $t) == 1) echo "Прошло 11 месяцев";
|
Если только вам не важно, чтобы собитие наступило в точности с учетом до часов/мину/секунд. | |
|
|
|
|
|
|
|
для: sim5
(24.06.2009 в 15:19)
| | Если будет получасться 12 - это ведь будет означать, что метка сделана в декабре, разве нет?
Добавлено:
Проще пример привести. Допустим, я добавляю метку сегодня, 24.06.2009, значит так же я должен добавить в бд дату 24.06.2010. А 24.05.2010 вывести сообщение о том, что через месяц уже будет год.
Спасибо, я, конечно, сомневаюсь, что на хостингах, например, так делают, но мне и такое пойдет) | |
|
|
|
|
|
|
|
для: neadekvat
(24.06.2009 в 15:23)
| | Если после проверки эта дата обновляется на новую, достаточно и проверки по месяцу, иначе нужно учитывать еще и год. | |
|
|
|
|
|
|
|
для: sim5
(24.06.2009 в 15:47)
| | Извращаться - так извращаться, вот что у меня получилось
<?php
$today = date('d.n.Y');
echo 'Дата добавления: '.$today;
echo '<br>';
$end_year = date('Y') + 1;
$end_date = date('d.n').'.'.$end_year;
echo 'Дата окончания: '.$end_date;
if (date('n') != 1) { // если месяц - НЕ январь
$warn_month = date('n') - 1; // чтобы месяц не получился нулевым
$warn_date = date('d').'.'.$warn_month.'.'.$end_year;
} else {
// если сейчас январь - то 11 месяцев после января - декабрь того же года
$warn_date = date('d.12.Y');
}
echo '<br>';
echo 'Дата предупреждения: '.$warn_date;
?>
|
В итоге получается это:
Дата добавления: 24.6.2009
Дата окончания: 24.6.2010
Дата предупреждения: 24.5.2010
|
И вот это, если поставить явнварь
Дата добавления: 24.1.2009
Дата окончания: 24.1.2010
Дата предупреждения: 24.12.2009
|
Ну, а уж сравнить две строки (дату с "датой предупреждения") - это вообще первое, что в php изучается, по-моему | |
|
|
|
|
|
|
|
для: neadekvat
(24.06.2009 в 16:09)
| | И к чему вся эта арифметика? У вас есть временная метка или дата сохраненная N времени назад. Если получить текущую метку/дату, и отнять от нее сохраненную, то вы узнаете искомое.
Как правильно сравнивать даты уже тут писалось не однократно, вам будет полезно поискать эти темы и почитать. | |
|
|
|
|
|
|
|
для: sim5
(24.06.2009 в 16:34)
| | В дальнейшем над этими датами будут совершаться еще действия, и там удобнее взять все-таки такой вид, а не 1234567890
Хотя с другой стороны, к виду date можно всегда привести, а к time уже сложнее
Надо будет подумать
Спасибо | |
|
|
|
|