powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / преабразование даты на php+xml
25 сообщений из 32, страница 1 из 2
преабразование даты на php+xml
    #38865957
alexssses
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем здарова!
кароче есть xml фаил из которого выводятся купоны, в том числе и дата окончания купона, которая выводится в формате
2015-01-29 23:59:00, как можно преабразавать дату получая из xml а затем конвертируя ее в более наглядный вид, типа осталось 1 день до кончания
заранее большое спасибо
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38865966
StrongX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexsssesВсем здарова!
кароче есть xml фаил из которого выводятся купоны, в том числе и дата окончания купона, которая выводится в формате
2015-01-29 23:59:00, как можно преабразавать дату получая из xml а затем конвертируя ее в более наглядный вид, типа осталось 1 день до кончания
заранее большое спасибо

Я кажется, что-то подобное делал чисто на php, вычислял и тд. Готовых и встроенных функций для вывода типа: Остался 1 день и тд. Ни в php ни в MySQL кажется нету. Нужно самому подбирать алгоритмы и тд.
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38865975
alexssses
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StrongX,

логически думаю нужно получить дату из xml, затем положить ее в массив а потом...не знаю)
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38865981
StrongX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexsssesStrongX,

логически думаю нужно получить дату из xml, затем положить ее в массив а потом...не знаю)

Да там вроде обычная арифметика, берешь текущую дату, ну когда размещают пост, далее берёшь дату, на сколько дней, месяцев и тд, её размещают, потом от второго отнимаешь первое, и получаешь разницу, то есть сколько осталось и тд.)
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38865982
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StrongXГотовых и встроенных функций для вывода типа: Остался 1 день и тд. Ни в php ни в MySQL кажется нету.В MySQL есть DATEDIFF .
PHP тоже имеет в своём составе date_diff .
Насколько они подойдут - это уж по месту смотреть.
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38865983
alexssses
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle,

может фрагмент кода выслать что бы понятнее было?
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38865995
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexssses,

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?php
$time_start=time(); //текущее время
$rel="/^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/"; //регулярное выражение
$end="2015-02-15 23:59:00";
preg_match($rel,$end,$match); //расспарсеный массив 
var_dump($match);
$year=$match[1];
$month=$match[2];
$day=$match[3];
$hour=$match[4];
$minute=$match[5];
$sec=$match[6];

$time_end=mktime($hour,$minute,$second,$month,$day,$year);  //конечная метка
$interval=$time_end-$time_start;  //интервал

$day_interval= round($interval/60/60/24); //дней
$hour_intervar=round($interval/60/60); //часов
$hour_minute=round($interval/60); //минут

echo "Дней:$day_interval или часов:$hour_intervar или минут:$hour_minute";
?>
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866000
alexssses
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey,

а откуда код дат берет?
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866004
alexssses
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey,

мне помогли настроить выборку из xml в php, но дата выводиться ну не совсем нормально, вот сам код


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
<?
$xml = simplexml_load_file( 'http://www.kupon/wp-content/themes/sevixwptheme/functions/xmls/cupons.xml' );
$coupons_cnt = sizeof($xml->coupons->coupon); // всего купонов
$n = 10; // кол-во случайных купонов
// генерируем случайные номера купонов
$ids = range(0, $coupons_cnt-1);
shuffle($ids);
$ids = array_slice($ids, 0, $n);
//
$out = array(); // тут будут лежать случайные купоны
$cnt=0; // счетчик
foreach($xml->coupons->coupon as $v) {
  if (in_array($cnt++,$ids)) {
    $out[] = $v;
  }
}// foreach
// результат
foreach($out as $v) {
  
  
                         echo '<table style="border:1px solid gray; box-shadow: -11px 4px 5px; border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px;">';
						 echo '<td style=" padding: 10px 10px; vertical-align: top;" rowspan="2"><img src="'.$v->logo.'"></td>';
						 echo '<td style="padding: 10px 10px;border-bottom: 1px solid; vertical-align: top; width: 73%;"><b style="font-size: 20px; font-family: Georgia, serif;">'.$v->short_name.':</b></td><tr><td style="vertical-align: top;"> '.$v->name.'</td></tr>';
						 echo '<td style="padding: 10px 10px;background-color: wheat; border-top: 1px solid; border-bottom: 1px solid;" colspan="3"><i>'.$v->description.'</i></td><tr>';
                         echo '<td style="padding: 10px 10px;vertical-align: top;"><b>Действителен до:</b> <br> <img style="width: 18px;" src="http://www.iconsearch.ru/uploads/icons/origami/128x128/clock.png">'.$v->date_end.'</td>';						
						 echo '<td style="padding: 10px 10px;float: right; "><a class="button12" target="_blanck" rel="nofollow"  href="'.$v->promolink.'">Получить промокод</a></td>';
												 echo '</table>';
  

}
// или 
//echo '<pre>';
//print_r($out);
?>




на оформление не смотрите)) это черновой вариант. суть в том, теперь как теперь вывести дату правильо тем кодом который вы мне выслали))
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866014
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexssses,

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
<?php
//Функция вычисления интервала
function intervar($end){
$result=array(); //результат
$time_start=time(); //текущее время
$rel="/^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/"; //регулярное выражение
preg_match($rel,$end,$match); //расспарсеный массив 
$year=$match[1];
$month=$match[2];
$day=$match[3];
$hour=$match[4];
$minute=$match[5];
$sec=$match[6];

$time_end=mktime($hour,$minute,$second,$month,$day,$year);  //конечная метка
$interval=$time_end-$time_start;  //интервал

$result['days']= round($interval/60/60/24); //дней
$result['hour']=round($interval/60/60); //часов
$result['minute']=round($interval/60); //минут

return $result;

}

/****************************************/
$xml = simplexml_load_file( 'http://www.kupon/wp-content/themes/sevixwptheme/functions/xmls/cupons.xml' );
$coupons_cnt = sizeof($xml->coupons->coupon); // всего купонов
$n = 10; // кол-во случайных купонов
// генерируем случайные номера купонов
$ids = range(0, $coupons_cnt-1);
shuffle($ids);
$ids = array_slice($ids, 0, $n);
//
$out = array(); // тут будут лежать случайные купоны
$cnt=0; // счетчик
foreach($xml->coupons->coupon as $v) {
  if (in_array($cnt++,$ids)) {
    $out[] = $v;
  }
}// foreach
// результат
foreach($out as $v) {
  
  
                         echo '<table style="border:1px solid gray; box-shadow: -11px 4px 5px; border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px;">';
						 echo '<td style=" padding: 10px 10px; vertical-align: top;" rowspan="2"><img src="'.$v->logo.'"></td>';
						 echo '<td style="padding: 10px 10px;border-bottom: 1px solid; vertical-align: top; width: 73%;"><b style="font-size: 20px; font-family: Georgia, serif;">'.$v->short_name.':</b></td><tr><td style="vertical-align: top;"> '.$v->name.'</td></tr>';
						 echo '<td style="padding: 10px 10px;background-color: wheat; border-top: 1px solid; border-bottom: 1px solid;" colspan="3"><i>'.$v->description.'</i></td><tr>';
                         echo '<td style="padding: 10px 10px;vertical-align: top;"><b>Действителен до:</b> <br> <img style="width: 18px;" src="http://www.iconsearch.ru/uploads/icons/origami/128x128/clock.png">'.interval($v->date_end)['days'].'</td>';						
						 echo '<td style="padding: 10px 10px;float: right; "><a class="button12" target="_blanck" rel="nofollow"  href="'.$v->promolink.'">Получить промокод</a></td>';
												 echo '</table>';
  

}
// или 
//echo '<pre>';
//print_r($out);
?>
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866016
alexssses
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey,

ау народ))
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866022
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexssses,
название функции только interval, а не intervar
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866025
alexssses
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey,

всеравно ошибка(((


Parse error: syntax error, unexpected '[', expecting ',' or ';' in Z:\home\kupon\www\test.php on line 50
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866030
alexssses
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey,

помоему на эту строчку ругается [lock.png">'.interval($v->date_end)['days'].'</td>';]
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866032
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexssses,

у меня ошибок нет.
попробуйте в цикле foreach присвоить в переменную
$result=interval($v->date_end)['days'];

и поменять в выводе на $result
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866034
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey,

откуда кстати взялись [ ] в начале и в конце
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866035
alexssses
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey,

да я хотел подстветить кодҚ
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866036
alexssses
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey,

[code]
<?php
//Функция вычисления интервала
function interval($end){
$result=array(); //результат
$time_start=time(); //текущее время
$rel="/^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/"; //регулярное выражение
preg_match($rel,$end,$match); //расспарсеный массив
$year=$match[1];
$month=$match[2];
$day=$match[3];
$hour=$match[4];
$minute=$match[5];
$sec=$match[6];

$time_end=mktime($hour,$minute,$second,$month,$day,$year); //конечная метка
$interval=$time_end-$time_start; //интервал

$result['days']= round($interval/60/60/24); //дней
$result['hour']=round($interval/60/60); //часов
$result['minute']=round($interval/60); //минут

return $result;

}

/****************************************/
$xml = simplexml_load_file( 'http://www.kupon/wp-content/themes/sevixwptheme/functions/xmls/cupons.xml' );
$coupons_cnt = sizeof($xml->coupons->coupon); // всего купонов
$n = 10; // кол-во случайных купонов
// генерируем случайные номера купонов
$ids = range(0, $coupons_cnt-1);
shuffle($ids);
$ids = array_slice($ids, 0, $n);
//
$out = array(); // тут будут лежать случайные купоны
$cnt=0; // счетчик
foreach($xml->coupons->coupon as $v) {
if (in_array($cnt++,$ids)) {
$out[] = $v;
$result=interval($v->date_end)['days'];
}
}// foreach
// результат
foreach($out as $v) {


echo '<table style="border:1px solid gray; box-shadow: -11px 4px 5px; border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px;">';
echo '<td style=" padding: 10px 10px; vertical-align: top;" rowspan="2"><img src="'.$v->logo.'"></td>';
echo '<td style="padding: 10px 10px;border-bottom: 1px solid; vertical-align: top; width: 73%;"><b style="font-size: 20px; font-family: Georgia, serif;">'.$v->short_name.':</b></td><tr><td style="vertical-align: top;"> '.$v->name.'</td></tr>';
echo '<td style="padding: 10px 10px;background-color: wheat; border-top: 1px solid; border-bottom: 1px solid;" colspan="3"><i>'.$v->description.'</i></td><tr>';
echo '<td style="padding: 10px 10px;vertical-align: top;"><b>Действителен до:</b> <br> <img style="width: 18px;" src="http://www.iconsearch.ru/uploads/icons/origami/128x128/clock.png">'.$result.'</td>';
echo '<td style="padding: 10px 10px;float: right; "><a class="button12" target="_blanck" rel="nofollow" href="'.$v->promolink.'">Получить промокод</a></td>';
echo '</table>';


}
// или
//echo '<pre>';
//print_r($out);
?>
[code]

так тож не робит)
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866043
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexssses,
кусок xml скинь, что бы протестировать
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866046
alexssses
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey,

вот весь xml он не тяжелый
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866058
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexssses,

у меня вроде все нормально

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
<?php
//Функция вычисления интервала
function interval($end){
$result=array(); //результат
$time_start=time(); //текущее время
$rel="/^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/"; //регулярное выражение
preg_match($rel,$end,$match); //расспарсеный массив 
$year=$match[1];
$month=$match[2];
$day=$match[3];
$hour=$match[4];
$minute=$match[5];
$sec=$match[6];

$time_end=mktime($hour,$minute,$second,$month,$day,$year);  //конечная метка
$interval=$time_end-$time_start;  //интервал

$result['days']= round($interval/60/60/24); //дней
$result['hour']=round($interval/60/60); //часов
$result['minute']=round($interval/60); //минут

return $result;

}

/****************************************/
$xml = simplexml_load_file( 'cupons.xml' );

$coupons_cnt = sizeof($xml->coupons->coupon); // всего купонов
$n = 10; // кол-во случайных купонов
// генерируем случайные номера купонов
$ids = range(0, $coupons_cnt-1);
shuffle($ids);
$ids = array_slice($ids, 0, $n);
//
$out = array(); // тут будут лежать случайные купоны
$cnt=0; // счетчик
foreach($xml->coupons->coupon as $v) {
  if (in_array($cnt++,$ids)) {
    $out[] = $v;
  }
}// foreach
// результат

foreach($out as $v) {
    
                         echo '<table style="border:1px solid gray; box-shadow: -11px 4px 5px; border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px;">';
						 echo '<td style=" padding: 10px 10px; vertical-align: top;" rowspan="2"><img src="'.$v->logo.'"></td>';
						 echo '<td style="padding: 10px 10px;border-bottom: 1px solid; vertical-align: top; width: 73%;"><b style="font-size: 20px; font-family: Georgia, serif;">'.$v->short_name.':</b></td><tr><td style="vertical-align: top;"> '.$v->name.'</td></tr>';
						 echo '<td style="padding: 10px 10px;background-color: wheat; border-top: 1px solid; border-bottom: 1px solid;" colspan="3"><i>'.$v->description.'</i></td><tr>';
                         echo '<td style="padding: 10px 10px;vertical-align: top;"><b>Действителен до:</b> <br> <img style="width: 18px;" src="http://www.iconsearch.ru/uploads/icons/origami/128x128/clock.png">'.$v->date_end.' Действителен еще:'.interval($v->date_end)['days'].'</td>';						
						 echo '<td style="padding: 10px 10px;float: right; "><a class="button12" target="_blanck" rel="nofollow"  href="'.$v->promolink.'">Получить промокод</a></td>';
												 echo '</table>';
  

}
// или 
//echo '<pre>';
//print_r($out);
?>
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866059
alexssses
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey,

Parse error: syntax error, unexpected '[', expecting ',' or ';' in Z:\home\kupon\www\test.php on line 51

блин че за фигня, может из-за денвера?
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866066
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexssses,
а так

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
<?php
//Функция вычисления интервала
function interval($end){
$result=array(); //результат
$time_start=time(); //текущее время
$rel="/^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/"; //регулярное выражение
preg_match($rel,$end,$match); //расспарсеный массив 
$year=$match[1];
$month=$match[2];
$day=$match[3];
$hour=$match[4];
$minute=$match[5];
$sec=$match[6];

$time_end=mktime($hour,$minute,$second,$month,$day,$year);  //конечная метка
$interval=$time_end-$time_start;  //интервал

$result= round($interval/60/60/24); //дней
//$result['hour']=round($interval/60/60); //часов
//$result['minute']=round($interval/60); //минут

return $result;

}

/****************************************/
$xml = simplexml_load_file( 'cupons.xml' );

$coupons_cnt = sizeof($xml->coupons->coupon); // всего купонов
$n = 10; // кол-во случайных купонов
// генерируем случайные номера купонов
$ids = range(0, $coupons_cnt-1);
shuffle($ids);
$ids = array_slice($ids, 0, $n);
//
$out = array(); // тут будут лежать случайные купоны
$cnt=0; // счетчик
foreach($xml->coupons->coupon as $v) {
  if (in_array($cnt++,$ids)) {
    $out[] = $v;
  }
}// foreach
// результат

foreach($out as $v) {
    $result=interval($v->date_end);
                         echo '<table style="border:1px solid gray; box-shadow: -11px 4px 5px; border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px;">';
						 echo '<td style=" padding: 10px 10px; vertical-align: top;" rowspan="2"><img src="'.$v->logo.'"></td>';
						 echo '<td style="padding: 10px 10px;border-bottom: 1px solid; vertical-align: top; width: 73%;"><b style="font-size: 20px; font-family: Georgia, serif;">'.$v->short_name.':</b></td><tr><td style="vertical-align: top;"> '.$v->name.'</td></tr>';
						 echo '<td style="padding: 10px 10px;background-color: wheat; border-top: 1px solid; border-bottom: 1px solid;" colspan="3"><i>'.$v->description.'</i></td><tr>';
                         echo '<td style="padding: 10px 10px;vertical-align: top;"><b>Действителен до:</b> <br> <img style="width: 18px;" src="http://www.iconsearch.ru/uploads/icons/origami/128x128/clock.png">'.$v->date_end.' Действителен еще:'.$result.'</td>';						
						 echo '<td style="padding: 10px 10px;float: right; "><a class="button12" target="_blanck" rel="nofollow"  href="'.$v->promolink.'">Получить промокод</a></td>';
												 echo '</table>';
  
}
// или 
//echo '<pre>';
//print_r($out);
?>
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866067
alexssses
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey,

Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "cupons.xml" in Z:\home\kupon\www\test.php on line 27

Warning: Invalid argument supplied for foreach() in Z:\home\kupon\www\test.php on line 38
))) ваще жесть
...
Рейтинг: 0 / 0
преабразование даты на php+xml
    #38866068
alexssses
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kunaksergey,

хотя я забыл написать путь да иксм
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / преабразование даты на php+xml
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]