J’ai eu besoin de calculer 92 jour depuis le jour J+1, donc voila, le petit algo mignon.
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 | $month = date('m'); $year = date('Y'); $day = date('d', mktime(0, 0, 0, $month, date('d', strtotime("+1 day")), $year)); $month = date('m', strtotime('+1 day')); $dateArray = array(); $dateArray[] = ''; for($i = 0,$j = $day; $i < 92; $i++,$j++) { $tmp = array(); if($j > date('t', mktime(0, 0, 0, $month, '01', $year))) { $j = 1; if($month == 12) { $year = date('Y', mktime(0, 0, 0, '01', '01', $year+1)); } $month = date('m', mktime(0, 0, 0, $month+1, '01', $year)); } if(strlen($j) != 2) $tmp[] = '0'.$j; else $tmp[] = $j; if(strlen($month) != 2) $tmp[] = '0'.$month; else $tmp[] = $month; $tmp[] = $year; $dateArray[] = implode('-', $tmp); } |
ce qui donne une fois passer a un widget symfony qui va bien
$this->widgetSchema['date_demarage'] = new sfWidgetFormSelect(array('label' => 'Date de démarrage', 'choices' => array_combine($dateArray, $dateArray) ));
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | <select name="ventes[date_demarage]" id="ventes_date_demarage"> <option value="" selected="selected"></option> <option value="09-06-2010">09-06-2010</option> <option value="10-06-2010">10-06-2010</option> <option value="11-06-2010">11-06-2010</option> <option value="12-06-2010">12-06-2010</option> <option value="13-06-2010">13-06-2010</option> <option value="14-06-2010">14-06-2010</option> <option value="15-06-2010">15-06-2010</option> <option value="16-06-2010">16-06-2010</option> <option value="17-06-2010">17-06-2010</option> <option value="18-06-2010">18-06-2010</option> <option value="19-06-2010">19-06-2010</option> <option value="20-06-2010">20-06-2010</option> <option value="21-06-2010">21-06-2010</option> <option value="22-06-2010">22-06-2010</option> <option value="23-06-2010">23-06-2010</option> <option value="24-06-2010">24-06-2010</option> <option value="25-06-2010">25-06-2010</option> <option value="26-06-2010">26-06-2010</option> <option value="27-06-2010">27-06-2010</option> <option value="28-06-2010">28-06-2010</option> <option value="29-06-2010">29-06-2010</option> <option value="30-06-2010">30-06-2010</option> <option value="01-07-2010">01-07-2010</option> <option value="02-07-2010">02-07-2010</option> <option value="03-07-2010">03-07-2010</option> <option value="04-07-2010">04-07-2010</option> <option value="05-07-2010">05-07-2010</option> <option value="06-07-2010">06-07-2010</option> <option value="07-07-2010">07-07-2010</option> <option value="08-07-2010">08-07-2010</option> <option value="09-07-2010">09-07-2010</option> <option value="10-07-2010">10-07-2010</option> <option value="11-07-2010">11-07-2010</option> <option value="12-07-2010">12-07-2010</option> <option value="13-07-2010">13-07-2010</option> <option value="14-07-2010">14-07-2010</option> <option value="15-07-2010">15-07-2010</option> <option value="16-07-2010">16-07-2010</option> <option value="17-07-2010">17-07-2010</option> <option value="18-07-2010">18-07-2010</option> <option value="19-07-2010">19-07-2010</option> <option value="20-07-2010">20-07-2010</option> <option value="21-07-2010">21-07-2010</option> <option value="22-07-2010">22-07-2010</option> <option value="23-07-2010">23-07-2010</option> <option value="24-07-2010">24-07-2010</option> <option value="25-07-2010">25-07-2010</option> <option value="26-07-2010">26-07-2010</option> <option value="27-07-2010">27-07-2010</option> <option value="28-07-2010">28-07-2010</option> <option value="29-07-2010">29-07-2010</option> <option value="30-07-2010">30-07-2010</option> <option value="31-07-2010">31-07-2010</option> <option value="01-08-2010">01-08-2010</option> <option value="02-08-2010">02-08-2010</option> <option value="03-08-2010">03-08-2010</option> <option value="04-08-2010">04-08-2010</option> <option value="05-08-2010">05-08-2010</option> <option value="06-08-2010">06-08-2010</option> <option value="07-08-2010">07-08-2010</option> <option value="08-08-2010">08-08-2010</option> <option value="09-08-2010">09-08-2010</option> <option value="10-08-2010">10-08-2010</option> <option value="11-08-2010">11-08-2010</option> <option value="12-08-2010">12-08-2010</option> <option value="13-08-2010">13-08-2010</option> <option value="14-08-2010">14-08-2010</option> <option value="15-08-2010">15-08-2010</option> <option value="16-08-2010">16-08-2010</option> <option value="17-08-2010">17-08-2010</option> <option value="18-08-2010">18-08-2010</option> <option value="19-08-2010">19-08-2010</option> <option value="20-08-2010">20-08-2010</option> <option value="21-08-2010">21-08-2010</option> <option value="22-08-2010">22-08-2010</option> <option value="23-08-2010">23-08-2010</option> <option value="24-08-2010">24-08-2010</option> <option value="25-08-2010">25-08-2010</option> <option value="26-08-2010">26-08-2010</option> <option value="27-08-2010">27-08-2010</option> <option value="28-08-2010">28-08-2010</option> <option value="29-08-2010">29-08-2010</option> <option value="30-08-2010">30-08-2010</option> <option value="31-08-2010">31-08-2010</option> <option value="01-09-2010">01-09-2010</option> <option value="02-09-2010">02-09-2010</option> <option value="03-09-2010">03-09-2010</option> <option value="04-09-2010">04-09-2010</option> <option value="05-09-2010">05-09-2010</option> <option value="06-09-2010">06-09-2010</option> <option value="07-09-2010">07-09-2010</option> <option value="08-09-2010">08-09-2010</option> </select> |