programing

php 날짜를 mysql 형식으로 변환

luckcodes 2022. 10. 18. 22:05

php 날짜를 mysql 형식으로 변환

php에는 다음 코드를 사용하는 날짜 필드가 있습니다.

$date = mysql_real_escape_string($_POST['intake_date']);

db에 포함하기 위해 MySql 형식 0000-00-00으로 변환하려면 어떻게 해야 합니까?date('Y-m-d' strtotime($date)';와 같은 경로입니까?제가 부탁하는 이유는 제가 이것을 여러 가지로 시도해봤지만 효과가 없을 것 같기 때문입니다.1970년 또는 기타 변형으로 표시됩니다.대단히 고맙습니다

$date = mysql_real_escape_string($_POST['intake_date']);

이 1인 . MySQL 럼 my myDATE 삭제:

$date = date('Y-m-d', strtotime(str_replace('-', '/', $date)));

이 2인 . MySQL 럼 my myDATETIME 삭제:

$date = date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $date)));

strototime()할 수 -세퍼레이터는 뺄셈을 시도합니다.


업데이트, 사용할 수 없는 날짜 형식strtotime()츠키다

$date = '02/07/2009 00:07:00';
$date = preg_replace('#(\d{2})/(\d{2})/(\d{4})\s(.*)#', '$3-$2-$1 $4', $date);
echo $date;

출력:

2009-07-02 00:07:00

이 사이트에는 두 가지 매우 간단한 솔루션이 있습니다.코드 체크만 하면 됩니다.필요에 따라 설명을 제공했습니다.클릭을 줄일 수 있습니다.

http://www.richardlord.net/blog/dates-in-php-and-mysql

1. DATETIME 필드에 날짜를 저장하고 PHP date() 및 strtotime() 함수를 사용하여 PHP 타임스탬프와 MySQL DATETIME 간에 변환하는 것이 일반적입니다.방법은 다음과 같이 사용됩니다.

$mysqldate = date( 'Y-m-d H:i:s', $phpdate );
$phpdate = strtotime( $mysqldate );

2. 두 번째 옵션은 MySQL에 작업을 맡기는 것입니다.MySQL에는 데이터베이스에 액세스하는 지점에서 데이터를 변환하는 데 사용할 수 있는 기능이 있습니다.UNIX_TIMESTamp는 DATETIME에서 PHP 타임스탬프로 변환하고 FROM_UNIXTIME은 PHP 타임스탬프에서 DATETIME으로 변환합니다.이 메서드는 SQL 쿼리 내에서 사용됩니다.그래서 다음과 같은 쿼리를 사용하여 날짜를 삽입하고 업데이트합니다.

$query = "UPDATE table SET
    datetimefield = FROM_UNIXTIME($phpdate)
    WHERE...";
$query = "SELECT UNIX_TIMESTAMP(datetimefield)
    FROM table WHERE...";

MySQL을 .FROM_UNIXTIME() ★★★★★★★★★★★★★★★★★」UNIX_TIMESTAMP().

SQL에서 이를 사용합니다. 예:

mysql> SELECT UNIX_TIMESTAMP(NOW());
+-----------------------+
| UNIX_TIMESTAMP(NOW()) |
+-----------------------+
|            1311343579 |
+-----------------------+
1 row in set (0.00 sec)

mysql> SELECT FROM_UNIXTIME(1311343579);
+---------------------------+
| FROM_UNIXTIME(1311343579) |
+---------------------------+
| 2011-07-22 15:06:19       |
+---------------------------+
1 row in set (0.00 sec)

인 경우 intake_date를 사용할 수 .date() ★★★★★★★★★★★★★★★★★」strtotime()

$mysqlDate = date('Y-m-d H:i:s', strtotime($_POST['intake_date']));

이 은 날짜 이 음, 음, 음, 음, 이, 이, 이, 이, however, however, however, however, however, however, however, however, however, however, however, however, however, however, however, however, however, however, however, however, , however, however, however, strtotime()지원되는 형식에 대해서는 문서 페이지를 참조하십시오.

dd/mm/yyy 형식으로 게시된 날짜가 있는 경우 다음을 사용하십시오.

$date = explode('/', $_POST['posted_date']);
$new_date = $date[2].'-'.$date[1].'-'.$date[0];

단위가 mm/dd/yyy인 경우 두 번째 행을 변경합니다.

$new_date = $date[2].'-'.$date[0].'-'.$date[1];

PHP 5.3에는 지정한 형식에 관계없이 DateTime 개체에서 생성 및 재포맷하는 기능이 있습니다.

$mysql_date = "2012-01-02";   // date in Y-m-d format as MySQL stores it
$date_obj = date_create_from_format('Y-m-d',$mysql_date);
$date = date_format($date_obj, 'm/d/Y');
echo $date;

출력:

01/02/2012

은 "MySQL"을 도 있습니다.STR_TO_DATE()때하고, '삽입/삽입할 때', '삽입/삽입할 때', '삽입'DATE_FORMAT()조회할 때.

$php_date = "01/02/2012";
$update_query = "UPDATE `appointments` SET `start_time` = STR_TO_DATE('" . $php_date . "', '%m/%d/%Y')";
$query = "SELECT DATE_FORMAT(`start_time`,'%m/%d/%Y') AS `start_time` FROM `appointments`";
function my_date_parse($date)
{
        if (!preg_match('/^(\d+)\.(\d+)\.(\d+)$/', $date, $m))
                return false;

        $day = $m[1];
        $month = $m[2];
        $year = $m[3];

        if (!checkdate($month, $day, $year))
                return false;

        return "$year-$month-$day";
}

몇 가지 옵션이 있습니다.

타임스탬프로 변환하여 MySQL의 날짜 구문 분석 옵션을 사용하여 다른 게시물에 지시된 대로 사용하거나 사용

$_POST [ intake _ date ]의 날짜 형식을 알고 있다면 폭발을 사용하여 연도, 월, 시간을 얻은 후 연결하여 유효한 mySql 날짜를 생성할 수 있습니다.예를 들어, 12월 15일 같은 날짜에 물건을 받는다면 다음과 같이 할 수 있습니다.

    $date = explode($_POST['intake_date'], '/');
    mysql_date = $date[2].'-'$date[1].'-'$date[0];

유효한 날짜(y-m-d', strtotime(date))도 동작합니다.

언급URL : https://stackoverflow.com/questions/6790930/convert-php-date-to-mysql-format