diff --git a/src/js/_enqueues/admin/inline-edit-post.js b/src/js/_enqueues/admin/inline-edit-post.js index 6f313fc0558c7..96fff89dac972 100644 --- a/src/js/_enqueues/admin/inline-edit-post.js +++ b/src/js/_enqueues/admin/inline-edit-post.js @@ -434,7 +434,15 @@ window.wp = window.wp || {}; post_date_string += ' ' + $(':input[name="hh"]').val() + ':' + $(':input[name="mn"]').val() + ':' + $(':input[name="ss"]').val(); var post_date = new Date( post_date_string ); status = $('._status', rowData).text(); - if ( 'future' !== status && Date.now() > post_date ) { + // Convert browser Date into site timezone before comparing. + var browserDate = new Date(); + var browserOffset = browserDate.getTimezoneOffset(); + var siteOffset = browserOffset; + if ( window.inlineEditPostConfig && window.inlineEditPostConfig.siteTzOffset ) { + siteOffset = parseInt( window.inlineEditPostConfig.siteTzOffset, 10 ); + } + var siteDate = new Date( browserDate.getTime() + (browserOffset - siteOffset) * 60000 ); + if ( 'future' !== status && siteDate > post_date ) { $('select[name="_status"] option[value="future"]', editRow).remove(); } else { $('select[name="_status"] option[value="publish"]', editRow).remove(); diff --git a/src/wp-admin/edit.php b/src/wp-admin/edit.php index 15cb17d303bd3..37a8e1a200345 100644 --- a/src/wp-admin/edit.php +++ b/src/wp-admin/edit.php @@ -235,6 +235,14 @@ $wp_list_table->prepare_items(); wp_enqueue_script( 'inline-edit-post' ); +wp_localize_script( + 'inline-edit-post', + 'inlineEditPostConfig', + array( + // get the site offset and convert to minutes. + 'siteTzOffset' => (int) ( - get_option( 'gmt_offset' ) * 60 ), + ) +); wp_enqueue_script( 'heartbeat' ); if ( 'wp_block' === $post_type ) {