php
  • mysql
  • date
  • mysqli
  • 2015-01-10 2 views 0 likes 
    0

    이 질문은 여러 번 질문되었지만 나에게 도움이된다는 것을 알고 있습니다.SQL의 변환 날짜 형식

    입력에서 날짜를 가져 와서 내 DB (MySQLi)에 저장하고 싶습니다.

    이것은 내가

    $ses_s = $_POST['ses_date_s']; 
    $ses_n_s = date("Y-m-d", strtotime($ses_s)); 
    $q = 'INSERT INTO date_t (ses_date_s,) VALUES (?)'; 
    $stmt = mysqli_prepare($dbc, $q); 
    mysqli_stmt_bind_param($stmt, 's', $ses_n_s); 
    mysqli_stmt_execute($stmt); 
    

    을 시도했지만 작동하지 않습니다 것입니다. 내가 입력

    날짜 : 17/07/2014이 ($ ses_s 에코)

    날짜가 나는 변환됩니다 : 1970-01-01 (유닉스 시작) ($ ses_n_s)

    내가 무슨 일을하고 있는가?

    P. 날짜를 반대로 가져 오려면 어떻게해야합니까? DB에서와 같이 날짜를 d/m/Y로 표시하고 Y/m/d로 표시하지 않겠습니까?

    미리 감사드립니다.

    편집 : 나는 내 질문을 변경할 수있는 경우 일/YYY

    그래서 내가 변환합니까/어떻게 내가 일/월 사용 (조나단 덕분에) 문제를 발견

    /YYYY하지 mm dd/mm/yyy부터 yyyy/mm/dd까지

    답변

    2

    매버릭 당신은 당신이 데이터가 필요 다음 순서에 넣어 될 수있는 POST 날짜를 폭발 할 수 :

    $ses_s = $_POST['ses_date_s']; //'17/07/2014'; 
    $sespieces = explode("/", $ses_s); 
    $ses_n_s = $sespieces[2]."-".$sespieces[1]."-".$sespieces[0]; //2014-07-17 
    
    1

    코드에 두 가지 문제점이 있습니다.

    1) insert 문에 문제가 발생했습니다. ses_date 2) 날짜/시간 형식이 잘못 전달 된 후 오류가 발생했습니다.

    $q = 'INSERT INTO date_t (ses_date_s,) VALUES (?)'; 
    

    합니다 (strtotime으로는 일/월/년을 (캐나다 표준) 전달하는 것은 널리 mm/DD/YYYY 것으로 기대하고있어 인식되지 않는 로케일을 고려

    $q = 'INSERT INTO date_t (ses_date_s) VALUES (?)'; 
    

    해야 우리 표준).

    strtotime을 사용하여 타임 스탬프를 만들지 말고 mysql 기본 형식의 데이터를 전달하거나 실제 타임 스탬프 자체를 전달하는 것이 좋습니다.

    실제로 데이터베이스에서 날짜를 얻으려면 strtotime이 mysql의 데이터를 올바르게 인식 할 수 있도록 올바르게 작동합니다.

    그래서 데이터베이스에서 당길 때이 작업을 수행 할 수 있습니다.

    echo date('d/m/Y' strtotime($date)); 
    
    +0

    신경 쓰지 마십시오 (,)가 좀 더 값을 가지고 있지만 내가 그들을 삭제하기 때문에 실수로 명확한 코드가 필요합니다. 문제가 발견되었습니다. 날짜를 dd/mm/yyyy가 아닌 mm/dd/yyyy ...로 입력 했으므로 어떻게하면 yd/mm/yyy를 yyyy/mm/dd로 변환 할 수 있습니까? – Maverick

    0

    $ _POST [ 'ses_date_s는']()는 문자열하지만 날짜 정수 (유닉스 타임 스탬프)가 필요합니다. strtotime()을 사용하여 후자로 변환 할 수 있습니다. 단, 날짜가 mm/dd/yy의 미국 규칙을 따르기를 기대하기 만합니다. DateTime 개체는 날짜를 구문 분석하기위한보다 복잡한 기능을 갖추고 있습니다.

    관련 문제