Tag Archives: MySQL

How To Assign The Current Date and Time to a MySQL Datetime Field using PHP

This is a no-brainer, but I always forget how to do it. MySQL datetime fields are stored in this format: 2010-02-18 10:33:18. Here’s a trivial example showing you how to populate a datetime field with the current date in the correct format, then write it to a table:

 // Assign current date to a MySQL date field:
 $eventdate = date('Y-m-d H:i:s');
 //... (mysql connection code goes here)
 mysql_query("INSERT INTO Events (Event, EventDate) VALUES ($eventtext, $eventdate)");

Another question might be: “Why?” – when MySQL has the now() function. I needed to do this in Drupal, because I’m using the drupal_write_record function to update a table in a custom module. This requires assigning PHP values to fields in my table, rather than using any built-in MySQL functions.

How To Format a MySQL Date For Output in PHP

The following PHP code parses the date portion out of a MySQL date column and lets you format it according to the formatting rules of the PHP date function.

// Parse date portion of a date field and format it according to the date() function.
// Second parm is optional. 
function FmtDateTime($dt, $fmt = "F d, Y")
{
	$arr = explode("-", substr($dt, 0, 10)); 
	//	$fmt of "m/d/Y" prints date in mm/dd/yyyy format. 
	//  $fmt of "F d, Y" prints date in Spelled out month day, YYYY format
	
	echo date($fmt, mktime(0,0,0, $arr[1], $arr[2], $arr[0])); 
}

To use it, you can do something like this:

<?php
   FmtDateTime($scdDate, "l d F, Y" ); ?> 

(This prints 2009-09-15 as “Tuesday 15 September, 2009”).

If you omit the second parameter on the function call, the date will print like this:
“September 15, 2009”