• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 754
  • Last Modified:

How do you create a drop down list of dates

Hi,
I would like to generate some php code that generates a drop down list of dates.
Can anyone provide some code for this.

For example I would like it to list say from June 2006, until present....how do you generate some code for this.

Also, if you select a date, like June 2006, how do you write a search code to search a database that has the dates entered as YYYY-MM-DD?

0
Amanda Watson
Asked:
Amanda Watson
  • 5
  • 4
1 Solution
 
ob1_Commented:
To re-display the date you use the date() function. So if your current YYYY-MM-DD date is stored in $fulldate you would do this:

$displaydate = date("F-Y",$fulldate);

This will change the date into "June 2006" format and store it in $displaydate.

To create a drop-down list you have to embed the html option element in a php while loop, that pulls the dates from a table you populate with dates.





$result = mysql_query("SELECT date from datetable");
 
while ($row = mysql_fetch_array($result)) { ?>
    $displaydate = $row["date"];
    <option value="<?php echo $displaydate ;?>"><?php echo $displaydate; ?></option><?php
	} 

Open in new window

0
 
Amanda WatsonWeb DeveloperAuthor Commented:
Hi,
I use this code attached

I get this output

$displaydate = $row["StartDate"]; January-1970

The date format is:

2008-01-03

So I am not sure what happened there...something is wrong?

<?php
include("Settings.php"); //Path to Settings.php
 
$displaydate = date("F-Y",$StartDate);
 
$result = mysql_query("SELECT StartDate from event");
 
while ($row = mysql_fetch_array($result)) { ?>
    $displaydate = $row["StartDate"];
    <option value="<?php echo $displaydate ;?>"><?php echo $displaydate; ?></option><?php
        } 
 
?>
 

Open in new window

0
 
ob1_Commented:
change

$displaydate = $row["StartDate"];

to

$displaydate = date("F-Y",$row['StartDate']);

you have to use the date function to turn the date into a valid "DateTime" object. Also, you can get rid of this line since you are pulling $displaydate from the table:

$displaydate = date("F-Y",$StartDate);

0
Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

 
ob1_Commented:
Also maybe I should have been more clear - you do have a table called "event" in a SQL database that you have created and linked to earlier in your code right?
0
 
Amanda WatsonWeb DeveloperAuthor Commented:
Yes, I  have
0
 
Amanda WatsonWeb DeveloperAuthor Commented:
Sorry,
I didn't understand your previous instructions.
can you outline the line number you are referring to please.
I tried a few different options but the date came back as January 1970 from 2008-01-03?
I have changed everything back to what I had posted before.

If I need to change something that you mentioned, please write the line numbers as I didn't know what youare talking about .

Am to confirm, yes the table is event.

Thanks,
0
 
ob1_Commented:
sorry i was being lazy and did not test it out, there were a few mistakes in the earlier code snippet,
please use this corrected code, i have just tested it. you have to turn the date into a unix timestamp first to work with it using mktime, also i left out the "select name" command to initiate your drop down list. sorry for the confusion.


$result = mysql_query("SELECT StartDate from event");
 
while ($row = mysql_fetch_array($result)) {
    $date_pieces = explode("-",$row["StartDate"]);
	$tstamp = mktime(0,0,0,$date_pieces[1],$date_pieces[2],$date_pieces[0]);
	$displaydate = date("F-Y",$tstamp); 
	?>
    <select name="datelist">
    <option value="<?php echo $displaydate ;?>"><?php echo $displaydate; ?></option><?php
        } 
	?>

Open in new window

0
 
Amanda WatsonWeb DeveloperAuthor Commented:
Thats awesome.
Thanks heaps for that!!
Well done!!
0
 
ob1_Commented:
You're very welcome. If the code works please mark the thread as solved and assign points for the solution.


0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Introducing Cloud Class® training courses

Tech changes fast. You can learn faster. That’s why we’re bringing professional training courses to Experts Exchange. With a subscription, you can access all the Cloud Class® courses to expand your education, prep for certifications, and get top-notch instructions.

  • 5
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now