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

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

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

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

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

может фрагмент кода выслать что бы понятнее было?
...
Рейтинг: 0 / 0
28.01.2015, 22:09
    #38865995
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
преабразование даты на php+xml
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
28.01.2015, 22:15
    #38866000
alexssses
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
преабразование даты на php+xml
kunaksergey,

а откуда код дат берет?
...
Рейтинг: 0 / 0
28.01.2015, 22:20
    #38866004
alexssses
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
преабразование даты на php+xml
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
28.01.2015, 22:47
    #38866014
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
преабразование даты на php+xml
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
28.01.2015, 22:48
    #38866016
alexssses
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
преабразование даты на php+xml
kunaksergey,

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

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


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

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

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

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

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

да я хотел подстветить кодҚ
...
Рейтинг: 0 / 0
28.01.2015, 23:13
    #38866036
alexssses
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
преабразование даты на php+xml
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
28.01.2015, 23:22
    #38866043
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
преабразование даты на php+xml
alexssses,
кусок xml скинь, что бы протестировать
...
Рейтинг: 0 / 0
28.01.2015, 23:24
    #38866046
alexssses
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
преабразование даты на php+xml
kunaksergey,

вот весь xml он не тяжелый
...
Рейтинг: 0 / 0
28.01.2015, 23:42
    #38866058
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
преабразование даты на php+xml
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
28.01.2015, 23:45
    #38866059
alexssses
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
преабразование даты на php+xml
kunaksergey,

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

блин че за фигня, может из-за денвера?
...
Рейтинг: 0 / 0
28.01.2015, 23:51
    #38866066
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
преабразование даты на php+xml
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
28.01.2015, 23:53
    #38866067
alexssses
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
преабразование даты на php+xml
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
28.01.2015, 23:53
    #38866068
alexssses
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
преабразование даты на php+xml
kunaksergey,

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


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