custom post scheduler for drafts

You’re treating $my_post as an array, and then an object. Try moving ‘edit_date’ into the array.

Also keep in mind that ‘post_date’ should be in your blog’s timezone. date will give the date-time in UTC timezone. See date_i18n() (codex: http://codex.wordpress.org/Function_Reference/date_i18n).

From what I can see, everything else is corret.