Bulk Updating Post Date in 1 day Increments

You could start from today and just work backwards, one day at a time:

$start_hour = 8;

$end_hour = 17;

$date = new DateTime;

foreach ( $posts as $post ) {
    $time = sprintf(
        /* Left-pad time values with zeros to two digits */
        '%02d:%02d:%02d',
        /* Random hour between start and end */
        rand( $start_hour, $end_hour ),
        /* Random minutes */
        rand( 0, 59 ),
        /* Random seconds */
        rand( 0, 59 )
    );

    $post_date = $date->format( 'Y-m-d' );

    wp_update_post( array(
        'ID'            => $post->ID,
        'post_date'     => "$post_date $time",
        'post_date_gmt' => null,
    ));

    // Move date 1 day back
    $date->modify( '-1 day' );
}