Make WordPress Core

Ticket #28992: mysql2date.2.patch

File mysql2date.2.patch, 3.0 KB (added by pbearne, 10 years ago)

removed commented code and added doc block with ticket no

  • src/wp-includes/functions.php

     
    2121 * @param string $format    Format of the date to return.
    2222 * @param string $date      Date string to convert.
    2323 * @param bool   $translate Whether the return date should be translated. Default true.
    24  * @return string|int Formatted date string, or Unix timestamp.
     24 * @return string|int|false Formatted date string, or Unix timestamp or false if bad param passed.
    2525 */
    2626function mysql2date( $format, $date, $translate = true ) {
    27         if ( empty( $date ) )
     27        if ( empty( $format ) || empty( $date )) {
    2828                return false;
     29        }
    2930
     31        $i = strtotime( $date );
     32
     33        if(false == $i){
     34                return false;
     35        }
     36
    3037        if ( 'G' == $format )
    3138                return strtotime( $date . ' +0000' );
    3239
    33         $i = strtotime( $date );
    34 
    3540        if ( 'U' == $format )
    3641                return $i;
    3742
  • tests/phpunit/tests/functions/mysql2date.php

     
     1<?php
     2
     3/**
     4 * Test for mysql2date()
     5 *
     6 * @group functions.php
     7 */
     8
     9
     10
     11class Tests_Functions_mysql2date extends WP_UnitTestCase {
     12
     13        /**
     14         * @ticket 28992
     15         */
     16        function test_mysql2date_false() {
     17                $this->assertFalse( mysql2date( '', '' ) );
     18                $this->assertFalse( mysql2date( '', '2012-12-30' ) );
     19                $this->assertFalse( mysql2date( 'Y-m-d', '' ) );
     20
     21                // must be valid date
     22                $this->assertFalse( mysql2date( 'Y-m-d', '42351234523541345143534534535314' ) );
     23                $this->assertFalse( mysql2date( 'Y-m-d', '1' ) );
     24                $this->assertFalse( mysql2date( 'Y-m-d', '1355270400' ) ); // unix date does work
     25
     26                $this->assertFalse( mysql2date( 'Y-m-d', 'i am not a date' ) );
     27
     28
     29        }
     30
     31
     32        /**
     33         * @ticket 28992
     34         */
     35        function test_mysql2date() {
     36                $formated_now = date( 'Y-m-d' );
     37
     38                $this->assertEquals( '2012-12-30', mysql2date( 'Y-m-d', '2012-12-30' ) );
     39                $this->assertEquals( '12-12-30',   mysql2date( 'y-m-d', '2012-12-30' ) );
     40                $this->assertEquals( '1356825600', mysql2date( 'G', '2012-12-30' ) );
     41                $this->assertEquals( '2012-12-30', mysql2date( 'Y-m-d', '2012-12-30', true ) );
     42                $this->assertEquals( '2012-12-30', mysql2date( 'Y-m-d', '2012-12-30', false ) );
     43
     44                $this->assertEquals( '2012-12-30', mysql2date( 'Y-m-d', 'December 30, 2012, 12:00 am' ) );
     45
     46
     47                $this->assertEquals( '1356825600', mysql2date( 'U', '2012-12-30' ) );
     48
     49                $this->assertEquals( $formated_now, mysql2date( 'Y-m-d', 'today' ) );
     50                $this->assertNotEquals( $formated_now, mysql2date( 'Y-m-d', 'tomorrow' ) );
     51
     52
     53                $this->assertEquals( 'December 30, 2012, 12:00 am', mysql2date( 'F j, Y, g:i a', '2012-12-30' ) );
     54                // no change on the phpunit as testing in english
     55                $this->assertEquals( 'December 30, 2012, 12:00 am', mysql2date( 'F j, Y, g:i a', '2012-12-30' ), true );
     56
     57        }
     58
     59}
     60 No newline at end of file