Title: touch_time
Published: April 25, 2014
Last modified: February 24, 2026

---

# touch_time( int|bool $edit = 1, int|bool $for_post = 1, int $tab_index, int|bool $multi )

## In this article

 * [Parameters](https://developer.wordpress.org/reference/functions/touch_time/?output_format=md#parameters)
 * [Source](https://developer.wordpress.org/reference/functions/touch_time/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/functions/touch_time/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/functions/touch_time/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/functions/touch_time/?output_format=md#wp--skip-link--target)

Prints out HTML form date elements for editing post or comment publish date.

## 󠀁[Parameters](https://developer.wordpress.org/reference/functions/touch_time/?output_format=md#parameters)󠁿

 `$edit`int|booloptional

Accepts `1|true` for editing the date, `0|false` for adding the date.

Default:`1`

`$for_post`int|booloptional

Accepts `1|true` for applying the date to a post, `0|false` for a comment.

Default:`1`

`$tab_index`intrequired

The tabindex attribute to add. Default 0.

`$multi`int|booloptional

Whether the additional fields and buttons should be added.
 Default `0|false`.

## 󠀁[Source](https://developer.wordpress.org/reference/functions/touch_time/?output_format=md#source)󠁿

    ```php
    function touch_time( $edit = 1, $for_post = 1, $tab_index = 0, $multi = 0 ) {
    	global $wp_locale;
    	$post = get_post();

    	if ( $for_post ) {
    		$edit = ! ( in_array( $post->post_status, array( 'draft', 'pending' ), true ) && ( ! $post->post_date_gmt || '0000-00-00 00:00:00' === $post->post_date_gmt ) );
    	}

    	$tab_index_attribute = '';
    	if ( (int) $tab_index > 0 ) {
    		$tab_index_attribute = " tabindex=\"$tab_index\"";
    	}

    	$post_date = ( $for_post ) ? $post->post_date : get_comment()->comment_date;
    	$jj        = ( $edit ) ? mysql2date( 'd', $post_date, false ) : current_time( 'd' );
    	$mm        = ( $edit ) ? mysql2date( 'm', $post_date, false ) : current_time( 'm' );
    	$aa        = ( $edit ) ? mysql2date( 'Y', $post_date, false ) : current_time( 'Y' );
    	$hh        = ( $edit ) ? mysql2date( 'H', $post_date, false ) : current_time( 'H' );
    	$mn        = ( $edit ) ? mysql2date( 'i', $post_date, false ) : current_time( 'i' );
    	$ss        = ( $edit ) ? mysql2date( 's', $post_date, false ) : current_time( 's' );

    	$cur_jj = current_time( 'd' );
    	$cur_mm = current_time( 'm' );
    	$cur_aa = current_time( 'Y' );
    	$cur_hh = current_time( 'H' );
    	$cur_mn = current_time( 'i' );

    	$month = '<label><span class="screen-reader-text">' .
    		/* translators: Hidden accessibility text. */
    		__( 'Month' ) .
    	'</span><select class="form-required" ' . ( $multi ? '' : 'id="mm" ' ) . 'name="mm"' . $tab_index_attribute . ">\n";
    	for ( $i = 1; $i < 13; $i = $i + 1 ) {
    		$monthnum  = zeroise( $i, 2 );
    		$monthtext = $wp_locale->get_month_abbrev( $wp_locale->get_month( $i ) );
    		$month    .= "\t\t\t" . '<option value="' . $monthnum . '" data-text="' . $monthtext . '" ' . selected( $monthnum, $mm, false ) . '>';
    		/* translators: 1: Month number (01, 02, etc.), 2: Month abbreviation. */
    		$month .= sprintf( __( '%1$s-%2$s' ), $monthnum, $monthtext ) . "</option>\n";
    	}
    	$month .= '</select></label>';

    	$day = '<label><span class="screen-reader-text">' .
    		/* translators: Hidden accessibility text. */
    		__( 'Day' ) .
    	'</span><input type="text" ' . ( $multi ? '' : 'id="jj" ' ) . 'name="jj" value="' . $jj . '" size="2" maxlength="2"' . $tab_index_attribute . ' autocomplete="off" class="form-required" inputmode="numeric" /></label>';
    	$year = '<label><span class="screen-reader-text">' .
    		/* translators: Hidden accessibility text. */
    		__( 'Year' ) .
    	'</span><input type="text" ' . ( $multi ? '' : 'id="aa" ' ) . 'name="aa" value="' . $aa . '" size="4" maxlength="4"' . $tab_index_attribute . ' autocomplete="off" class="form-required" inputmode="numeric" /></label>';
    	$hour = '<label><span class="screen-reader-text">' .
    		/* translators: Hidden accessibility text. */
    		__( 'Hour' ) .
    	'</span><input type="text" ' . ( $multi ? '' : 'id="hh" ' ) . 'name="hh" value="' . $hh . '" size="2" maxlength="2"' . $tab_index_attribute . ' autocomplete="off" class="form-required" inputmode="numeric" /></label>';
    	$minute = '<label><span class="screen-reader-text">' .
    		/* translators: Hidden accessibility text. */
    		__( 'Minute' ) .
    	'</span><input type="text" ' . ( $multi ? '' : 'id="mn" ' ) . 'name="mn" value="' . $mn . '" size="2" maxlength="2"' . $tab_index_attribute . ' autocomplete="off" class="form-required" inputmode="numeric" /></label>';

    	echo '<div class="timestamp-wrap">';
    	/* translators: 1: Month, 2: Day, 3: Year, 4: Hour, 5: Minute. */
    	printf( __( '%1$s %2$s, %3$s at %4$s:%5$s' ), $month, $day, $year, $hour, $minute );

    	echo '</div><input type="hidden" id="ss" name="ss" value="' . $ss . '" />';

    	if ( $multi ) {
    		return;
    	}

    	echo "\n\n";

    	$map = array(
    		'mm' => array( $mm, $cur_mm ),
    		'jj' => array( $jj, $cur_jj ),
    		'aa' => array( $aa, $cur_aa ),
    		'hh' => array( $hh, $cur_hh ),
    		'mn' => array( $mn, $cur_mn ),
    	);

    	foreach ( $map as $timeunit => $value ) {
    		list( $unit, $curr ) = $value;

    		echo '<input type="hidden" id="hidden_' . $timeunit . '" name="hidden_' . $timeunit . '" value="' . $unit . '" />' . "\n";
    		$cur_timeunit = 'cur_' . $timeunit;
    		echo '<input type="hidden" id="' . $cur_timeunit . '" name="' . $cur_timeunit . '" value="' . $curr . '" />' . "\n";
    	}
    	?>

    <p>
    <a href="#edit_timestamp" class="save-timestamp hide-if-no-js button"><?php _e( 'OK' ); ?></a>
    <a href="#edit_timestamp" class="cancel-timestamp hide-if-no-js button-cancel"><?php _e( 'Cancel' ); ?></a>
    </p>
    	<?php
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-admin/includes/template.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-admin/includes/template.php#L807)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/template.php#L807-L898)

## 󠀁[Related](https://developer.wordpress.org/reference/functions/touch_time/?output_format=md#related)󠁿

| Uses | Description | 
| [zeroise()](https://developer.wordpress.org/reference/functions/zeroise/)`wp-includes/formatting.php` |

Add leading zeros when necessary.

  | 
| [selected()](https://developer.wordpress.org/reference/functions/selected/)`wp-includes/general-template.php` |

Outputs the HTML selected attribute.

  | 
| [mysql2date()](https://developer.wordpress.org/reference/functions/mysql2date/)`wp-includes/functions.php` |

Converts given MySQL date string into a different format.

  | 
| [current_time()](https://developer.wordpress.org/reference/functions/current_time/)`wp-includes/functions.php` |

Retrieves the current time based on specified type.

  | 
| [WP_Locale::get_month_abbrev()](https://developer.wordpress.org/reference/classes/wp_locale/get_month_abbrev/)`wp-includes/class-wp-locale.php` |

Retrieves translated version of month abbreviation string.

  | 
| [WP_Locale::get_month()](https://developer.wordpress.org/reference/classes/wp_locale/get_month/)`wp-includes/class-wp-locale.php` |

Retrieves the full translated month by month number.

  | 
| [__()](https://developer.wordpress.org/reference/functions/__/)`wp-includes/l10n.php` |

Retrieves the translation of $text.

  | 
| [_e()](https://developer.wordpress.org/reference/functions/_e/)`wp-includes/l10n.php` |

Displays translated text.

  | 
| [get_post()](https://developer.wordpress.org/reference/functions/get_post/)`wp-includes/post.php` |

Retrieves post data given a post ID or post object.

  | 
| [get_comment()](https://developer.wordpress.org/reference/functions/get_comment/)`wp-includes/comment.php` |

Retrieves comment data given a comment ID or comment object.

  |

[Show 5 more](https://developer.wordpress.org/reference/functions/touch_time/?output_format=md#)
[Show less](https://developer.wordpress.org/reference/functions/touch_time/?output_format=md#)

| Used by | Description | 
| [post_submit_meta_box()](https://developer.wordpress.org/reference/functions/post_submit_meta_box/)`wp-admin/includes/meta-boxes.php` |

Displays post submit form fields.

  | 
| [WP_Posts_List_Table::inline_edit()](https://developer.wordpress.org/reference/classes/wp_posts_list_table/inline_edit/)`wp-admin/includes/class-wp-posts-list-table.php` |

Outputs the hidden row displayed when inline editing

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/functions/touch_time/?output_format=md#changelog)󠁿

| Version | Description | 
| [4.4.0](https://developer.wordpress.org/reference/since/4.4.0/) | Converted to use [get_comment()](https://developer.wordpress.org/reference/functions/get_comment/) instead of the global `$comment`. | 
| [0.71](https://developer.wordpress.org/reference/since/0.71/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Ffunctions%2Ftouch_time%2F)
before being able to contribute a note or feedback.