Mysql
 sql >> база данни >  >> RDS >> Mysql

Създайте обект Date в PHP за дати преди 1970 г. в определен формат

Опитайте тази функция.

Редактиране: Първо ще преобразуваме двуцифрената година в 4 цифрена. След това ще формираме пълна дата и ще я предадем на функция.

 $original_date = '22-10-49';
    $date_part = explode('-',$original_date);

    $baseyear = 1900; // range is 1900-2062
    $shortyear = $date_part[2];
    $year = 100 + $baseyear + ($shortyear - $baseyear) % 100;
    $subdate = substr( $original_date, 0, strrpos( $original_date, '-' ) );
    $string = $subdate."-".$year;

    echo safe_strtotime($string);

function safe_strtotime($string)
{
    if(!preg_match("/\d{4}/", $string, $match)) return null; //year must be in YYYY form
    $year = intval($match[0]);//converting the year to integer
    if($year >= 1970) return date("Y-m-d", strtotime($string));//the year is after 1970 - no problems even for Windows
    if(stristr(PHP_OS, "WIN") && !stristr(PHP_OS, "DARWIN")) //OS seems to be Windows, not Unix nor Mac
    {
        $diff = 1975 - $year;//calculating the difference between 1975 and the year
        $new_year = $year + $diff;//year + diff = new_year will be for sure > 1970
        $new_date = date("Y-m-d", strtotime(str_replace($year, $new_year, $string)));//replacing the year with the new_year, try strtotime, rendering the date
        return str_replace($new_year, $year, $new_date);//returning the date with the correct year
    }
    return date("Y-m-d", strtotime($string));//do normal strtotime
}

Източник:Използване на strtotime за дати преди 1970 г.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. заявката не е равна не работи

  2. Актуализиране на SQL база данни със стойности в квадратчетата за отметка

  3. Предупреждение:mysqli_query() очаква параметър 1 да бъде даден mysqli булев

  4. Как да оптимизираме MySQL Boolean пълнотекстово търсене? (Или с какво да го заменя?) - C#

  5. Как да получите записа, ако Count е нула в Laravel