How can I validate a MYSQL Timestamp with PHP?

I have a page that builds what I believe is a UNIX Timestamp, in the following format:

YYYYMMDDHHMMSS

My PHP script fails to insert the date into MySQL if a date that doesn't exist, such as February 31st, is selected.  Does PHP have a built in function to do this kind of validation or do I have to create my own function?
$invoiceTimeStamp  = $_POST['invoiceYear'];
$invoiceTimeStamp .= $_POST['invoiceMonth'];
$invoiceTimeStamp .= $_POST['invoiceDay'];
$invoiceTimeStamp .= "000000"; // zero hour, minute, and second

Open in new window

CheeserTheAverageAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Roger BaklundConnect With a Mentor Commented:
I just found out PHP has a builtin function for this: checkdate()

http://php.net/checkdate
0
 
Roger BaklundCommented:
First, this is not a unix timestamp. A unix timestamp is an integer, the number of seconds since 1/1-1970.

You could use the PHP function mktime() to validate.

http://php.net/manual/en/function.mktime.php

Note that this will only work for dates between 1970 and 2038 on some systems (windows before PHP 5.1), and for dates between 1901 and 2038 in newer PHP versions (5.1+).
function ValidDate($y,$m,$d) {
  if(strlen($m)<2) $m = '0'.$m;
  if(strlen($d)<2) $d = '0'.$d;
  return (date('Y-m-d',mktime(0,0,0,$m,$d,$y))=="$y-$m-$d");
}

Open in new window

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.

All Courses

From novice to tech pro — start learning today.