|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
I am wanting to change
echo "<option value=\"" . $months[$month] . "\""; to output the month number, between 01 and 12 --- DATE value m, the month with leading 0's. How do I do this? $months is an array, as I have shown below. Ron <?php $months = array('1' => 'January', '2' => 'February', '3' => 'March', '4' => 'April', '5' => 'May', '6' => 'June', '7' => 'July', '8' => 'August', '9' => 'September', '10' => 'October', '11' => 'November', '12' => 'December'); $current_month = DATE("n"); echo "<SELECT NAME=\"order_received_month\">\r\n"; foreach (range(1, 12) as $month) { echo "<option value=\"" . $months[$month] . "\""; if ( $month == $current_month ) { echo " SELECTED";} echo">" . $months[$month] . "</option>\r\n"; } ?> </select> |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
2008/5/10 Ron Piggott <ron.php@actsministries.org>:
> I am wanting to change > > echo "<option value=\"" . $months[$month] . "\""; > > to output the month number, between 01 and 12 --- DATE value m, the > month with leading 0's. How do I do this? $months is an array, as I > have shown below. Ron > > <?php > $months = array('1' => 'January', '2' => 'February', '3' => 'March', '4' > => 'April', '5' => 'May', '6' => 'June', '7' => 'July', '8' => 'August', > '9' => 'September', '10' => 'October', '11' => 'November', '12' => > 'December'); > > $current_month = DATE("n"); > > echo "<SELECT NAME=\"order_received_month\">\r\n"; > > foreach (range(1, 12) as $month) > { > echo "<option value=\"" . $months[$month] . "\""; > > if ( $month == $current_month ) { echo " SELECTED";} > > echo">" . $months[$month] . "</option>\r\n"; > } > ?> > </select> Try this (from memory, untested). for ($i = 1; $i >= 12; $i++) { $month = date( 'm', strtotime( "1970-$i-01" )); echo "<option value=\"$i\">$month</option>"; } Or this: printf( "%02d", 5 ); However, please consider replacing numeric identifiers for months with textual ones ('M' rather than 'm'). [01] [Apr] [2008] doesn't cause the confusion that [01] [04] [2008] does. |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
> for ($i = 1; $i >= 12; $i++)
I'm an idiot. for ($i = 1; $i <= 12; $i++) |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
On 5/10/08, Ron Piggott <ron.php@actsministries.org> wrote:
> I am wanting to change > > echo "<option value=\"" . $months[$month] . "\""; > > to output the month number, between 01 and 12 --- DATE value m, the > month with leading 0's. How do I do this? $months is an array, as I > have shown below. Ron > > <?php > $months = array('1' => 'January', '2' => 'February', '3' => 'March', '4' > => 'April', '5' => 'May', '6' => 'June', '7' => 'July', '8' => 'August', > '9' => 'September', '10' => 'October', '11' => 'November', '12' => > 'December'); > > $current_month = DATE("n"); > > echo "<SELECT NAME=\"order_received_month\">\r\n"; > foreach ($months as $i => $month) > { > echo "<option value=\"" . $month . "\""; > > if ( $i == $current_month ) { echo " SELECTED";} > > echo">" . $month . "</option>\r\n"; > } > ?> > </select> > > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- -Casey |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Ron Piggott wrote:
> I am wanting to change > > echo "<option value=\"" . $months[$month] . "\""; > > to output the month number, between 01 and 12 --- DATE value m, the > month with leading 0's. How do I do this? $months is an array, as I > have shown below. Ron > > <?php > $months = array('1' => 'January', '2' => 'February', '3' => 'March', '4' > => 'April', '5' => 'May', '6' => 'June', '7' => 'July', '8' => 'August', > '9' => 'September', '10' => 'October', '11' => 'November', '12' => > 'December'); > > $current_month = DATE("n"); > > echo "<SELECT NAME=\"order_received_month\">\r\n"; > > foreach (range(1, 12) as $month) > { > echo "<option value=\"" . $months[$month] . "\""; > > if ( $month == $current_month ) { echo " SELECTED";} > > echo">" . $months[$month] . "</option>\r\n"; > } > ?> > </select> > You may update like: foreach(range(1, 12) as $key => $month) { echo "<option value=\"" . str_pad( $key, 2, "0", STR_PAD_LEFT ) . "\""; } Cheers, CJW |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
CJ Willcock wrote:
> Ron Piggott wrote: >> I am wanting to change >> echo "<option value=\"" . $months[$month] . "\""; >> >> to output the month number, between 01 and 12 --- DATE value m, the >> month with leading 0's. How do I do this? $months is an array, as I >> have shown below. Ron >> >> <?php >> $months = array('1' => 'January', '2' => 'February', '3' => 'March', '4' >> => 'April', '5' => 'May', '6' => 'June', '7' => 'July', '8' => 'August', >> '9' => 'September', '10' => 'October', '11' => 'November', '12' => >> 'December'); >> >> $current_month = DATE("n"); >> >> echo "<SELECT NAME=\"order_received_month\">\r\n"; >> >> foreach (range(1, 12) as $month) >> { >> echo "<option value=\"" . $months[$month] . "\""; >> >> if ( $month == $current_month ) { echo " SELECTED";} >> >> echo">" . $months[$month] . "</option>\r\n"; >> } >> ?> >> </select> >> > > You may update like: > > foreach(range(1, 12) as $key => $month) { > echo "<option value=\"" . str_pad( $key, 2, "0", STR_PAD_LEFT ) . "\""; > } > > > Cheers, > CJW Sorry, forgot to increment the key. Read: echo "<option value=\"" . str_pad( $key + 1, 2, "0", STR_PAD_LEFT ) .. "\""; Cheers, CJW |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
Ron Piggott wrote:
> I am wanting to change > > echo "<option value=\"" . $months[$month] . "\""; > > to output the month number, between 01 and 12 --- DATE value m, the > month with leading 0's. How do I do this? $months is an array, as I > have shown below. Ron > > <?php > $months = array('1' => 'January', '2' => 'February', '3' => 'March', '4' > => 'April', '5' => 'May', '6' => 'June', '7' => 'July', '8' => 'August', > '9' => 'September', '10' => 'October', '11' => 'November', '12' => > 'December'); > > $current_month = DATE("n"); > > echo "<SELECT NAME=\"order_received_month\">\r\n"; > > foreach (range(1, 12) as $month) > { > echo "<option value=\"" . $months[$month] . "\""; > > if ( $month == $current_month ) { echo " SELECTED";} > > echo">" . $months[$month] . "</option>\r\n"; > } > ?> > </select> > > Ok, I will show you two different ways to do this. <?php $months = array( '1' => 'January', '2' => 'February', '3' => 'March', '4' => 'April', '5' => 'May', '6' => 'June', '7' => 'July', '8' => 'August', '9' => 'September', '10' => 'October', '11' => 'November', '12' => 'December', ); foreach ( $months AS $i => $month ) { $sel = ( $i == date('n') ? ' selected="selected"' : ''); echo "<option value='{$month}' {$sel}>{$month}</option>\r\n"; } ?> Personally, I would do something like this. <?php $options = array(); for ( $i=1; $i<13; $i++ ) { $month = date('F', mktime(0,0,0,$i,2,2000)); $sel = ( $i == date('n') ? ' selected="selected"' : ''); $options[] = "<option value='{$month}' {$sel}>{$month}</option>"; } $options_list = join("\r\n", $options); echo "<select>{$options_list}</select>"; ?> Now, if you are wanting to display the numerical month with leading zero's, then you would want to look at the 'm' option for date() or str_pad(). something like this might show you what you need. <?php # str_pad test echo str_pad(3, 2, '0', STR_PAD_LEFT) ?> Hope this s understand a little more. Jim |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
Jim Lucas wrote:
> Ron Piggott wrote: >> I am wanting to change >> echo "<option value=\"" . $months[$month] . "\""; >> >> to output the month number, between 01 and 12 --- DATE value m, the >> month with leading 0's. How do I do this? $months is an array, as I >> have shown below. Ron >> >> <?php >> $months = array('1' => 'January', '2' => 'February', '3' => 'March', '4' >> => 'April', '5' => 'May', '6' => 'June', '7' => 'July', '8' => 'August', >> '9' => 'September', '10' => 'October', '11' => 'November', '12' => >> 'December'); >> >> $current_month = DATE("n"); >> >> echo "<SELECT NAME=\"order_received_month\">\r\n"; >> >> foreach (range(1, 12) as $month) >> { >> echo "<option value=\"" . $months[$month] . "\""; >> >> if ( $month == $current_month ) { echo " SELECTED";} >> >> echo">" . $months[$month] . "</option>\r\n"; >> } >> ?> >> </select> >> >> > > Ok, I will show you two different ways to do this. > > <?php > > $months = array( > '1' => 'January', > '2' => 'February', > '3' => 'March', > '4' => 'April', > '5' => 'May', > '6' => 'June', > '7' => 'July', > '8' => 'August', > '9' => 'September', > '10' => 'October', > '11' => 'November', > '12' => 'December', > ); > > foreach ( $months AS $i => $month ) { > $sel = ( $i == date('n') ? ' selected="selected"' : ''); > echo "<option value='{$month}' {$sel}>{$month}</option>\r\n"; > } > > ?> > > Personally, I would do something like this. > > <?php > > $options = array(); > > for ( $i=1; $i<13; $i++ ) { > $month = date('F', mktime(0,0,0,$i,2,2000)); > $sel = ( $i == date('n') ? ' selected="selected"' : ''); > $options[] = "<option value='{$month}' {$sel}>{$month}</option>"; > } > > $options_list = join("\r\n", $options); > > echo "<select>{$options_list}</select>"; > > ?> > > Now, if you are wanting to display the numerical month with leading > zero's, then you would want to look at the 'm' option for date() or > str_pad(). > > > something like this might show you what you need. > > <?php > > # str_pad test > echo str_pad(3, 2, '0', STR_PAD_LEFT) > > ?> > > Hope this s understand a little more. > > Jim > sorry should have included this in the first one. http://www.cmsws.com/examples/php/te...s.org/0002.php |
|
![]() |
| Outils de la discussion | |
|
|