Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I am writing a plugin where I need to pre-load some data in the custom tables that I create upon Activation. My inserts have run fine thus far until I attempt to insert a record with a DATE datatype. Can someone please tell me what I have wrong here?

Database Table Definition:

$sql =  "CREATE TABLE IF NOT EXISTS " . $wpdb->prefix.SSM_ACADEMIC_YEAR_TABLE. " (
                  id mediumint(12) NOT NULL AUTO_INCREMENT,
                  academicyear VARCHAR(200) NOT NULL,
                  begin_date date NOT NULL,
                  end_date date NOT NULL,
                  created_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
                PRIMARY KEY (id));";

    $wpdb->query($sql);

Database Insert:

$current_year = array(
            'academicyear' => '2012 - 2013',
            'begin_date'   => date('Y-m-d', '2012-08-14'),
            'end-date'     => date('Y-m-d', '2013-05-31')
        );

        $wpdb->insert($wpdb->prefix.SSM_ACADEMIC_YEAR_TABLE, $current_year);

I have tried many different methods like just using => '2012-08-14' but that doesn't work either. I'm sure there's some syntax I am either missing or I have wrong.

share|improve this question

1 Answer 1

up vote 1 down vote accepted

date does not take a human readable string. It takes a Unix timestamp. You need to convert that human date to a timestamp with strtotime.

'begin_date'   => date('Y-m-d', strtotime('2012-08-14')),

Of course, there is really no need to convert a YEAR-MONTH-DAY date into a timestamp only to convert it back that a YEAR-MONTH-DAY format.

share|improve this answer
    
There is a typo in your code. You created end_date but are inserting data into end-date. I am marking this for closing as 'too localized' but you could just delete it. –  s_ha_dum Apr 24 '13 at 20:51
    
OMG! Thanks so much! That was it and yes, I will delete it. –  ClockwiseQ Apr 24 '13 at 20:53
    
apparently I don't have the cred enough to delete it, so you can close it. –  ClockwiseQ Apr 24 '13 at 21:00

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.