Clarify that `get_the_date()`, `get_the_time()`, `get_post_time()` and `get_post_modified_time()` should return `false` when `get_post()` is `null`.

Adds unit tests.

Props GaryJ, SergeyBiryukov, tollmanz.
Fixes #28310.

Built from https://develop.svn.wordpress.org/trunk@29344


git-svn-id: http://core.svn.wordpress.org/trunk@29122 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Scott Taylor 2014-08-01 18:40:16 +00:00
parent 5d102f8e0b
commit 69dbf4f5df
2 changed files with 26 additions and 9 deletions

View File

@ -21,7 +21,7 @@ require( ABSPATH . WPINC . '/option.php' );
* @param string $format Format of the date to return.
* @param string $date Date string to convert.
* @param bool $translate Whether the return date should be translated. Default true.
* @return string|int Formatted date string, or Unix timestamp.
* @return string|int|bool Formatted date string or Unix timestamp. False if $date is empty.
*/
function mysql2date( $format, $date, $translate = true ) {
if ( empty( $date ) )

View File

@ -1725,11 +1725,15 @@ function the_date( $d = '', $before = '', $after = '', $echo = true ) {
*
* @param string $d Optional. PHP date format defaults to the date_format option if not specified.
* @param int|WP_Post $post Optional. Post ID or WP_Post object. Default current post.
* @return string Date the current post was written.
* @return string|bool Date the current post was written. False on failure.
*/
function get_the_date( $d = '', $post = null ) {
$post = get_post( $post );
if ( ! $post ) {
return false;
}
if ( '' == $d ) {
$the_date = mysql2date( get_option( 'date_format' ), $post->post_date );
} else {
@ -1839,11 +1843,15 @@ function the_time( $d = '' ) {
* was written. Either 'G', 'U', or php date format defaults
* to the value specified in the time_format option. Default empty.
* @param int|WP_Post $post WP_Post object or ID. Default is global $post object.
* @return string|int Formatted date string, or Unix timestamp.
* @return string|int|bool Formatted date string or Unix timestamp. False on failure.
*/
function get_the_time( $d = '', $post = null ) {
$post = get_post($post);
if ( ! $post ) {
return false;
}
if ( '' == $d )
$the_time = get_post_time(get_option('time_format'), false, $post, true);
else
@ -1873,11 +1881,15 @@ function get_the_time( $d = '', $post = null ) {
* @param bool $gmt Optional. Whether to retrieve the GMT time. Default false.
* @param int|WP_Post $post WP_Post object or ID. Default is global $post object.
* @param bool $translate Whether to translate the time string. Default false.
* @return string|int Formatted date string, or Unix timestamp.
* @return string|int|bool Formatted date string or Unix timestamp. False on failure.
*/
function get_post_time( $d = 'U', $gmt = false, $post = null, $translate = false ) {
$post = get_post($post);
if ( ! $post ) {
return false;
}
if ( $gmt )
$time = $post->post_date_gmt;
else
@ -1951,15 +1963,20 @@ function get_the_modified_time($d = '') {
*
* @since 2.0.0
*
* @param string $d Optional, default is 'U'. Either 'G', 'U', or php date format.
* @param bool $gmt Optional, default is false. Whether to return the gmt time.
* @param int|object $post Optional, default is global post object. A post_id or post object
* @param bool $translate Optional, default is false. Whether to translate the result
* @return string Returns timestamp
* @param string $d Optional. Format to use for retrieving the time the post
* was modified. Either 'G', 'U', or php date format. Default 'U'.
* @param bool $gmt Optional. Whether to retrieve the GMT time. Default false.
* @param int|WP_Post $post WP_Post object or ID. Default is global $post object.
* @param bool $translate Whether to translate the time string. Default false.
* @return string|int|bool Formatted date string or Unix timestamp. False on failure.
*/
function get_post_modified_time( $d = 'U', $gmt = false, $post = null, $translate = false ) {
$post = get_post($post);
if ( ! $post ) {
return false;
}
if ( $gmt )
$time = $post->post_modified_gmt;
else