2013-05-09 43 views
5

Tôi đang cố gắng lưu một dữ liệu trong PHP vào cơ sở dữ liệu MySQL dưới dạng kiểu dữ liệu dấu thời gian. Tôi tìm thấy rất nhiều bài viết về điều này, nhưng không ai trong số họ làm việc cho tôi. Đây là những gì tôi đã cố gắng:Lưu chuỗi ngày tháng PHP vào cơ sở dữ liệu MySQL làm dấu thời gian

$date = $_POST['date']; 
$timestamp = date("m/d/Y", strtotime($date)); 
$sql = "insert into sale(service, amount, date, customerid_fk) values('$service', '$amount', '$timestamp', '$id');"; 

Nhưng trong cơ sở dữ liệu, tôi chỉ nhận được:

0000-00-00 00:00:00 

Chuỗi đầu vào từ các đối tượng POST là 05/30/2013. Cảm ơn rất nhiều vì đã ủng hộ!

+0

mySQL hy vọng ' Định dạng Ymd' cho dấu thời gian. Thay đổi chuỗi định dạng cho phù hợp và bạn sẽ tốt. –

+0

Bạn đã kiểm tra điều này chưa? http://stackoverflow.com/questions/2501915/convert-date-string-to-mysql-datetime-field – Madthew

+0

http://stackoverflow.com/questions/7112982/converting-string-to-mysql- timestamp-format-in-php là những gì bạn cần tôi mong đợi. – Anvesh

Trả lời

14

Điều này có thể làm việc cho bạn:

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

$sql = "insert into sale(service, amount, date, customerid_fk) values('$service', '$amount', '$timestamp', '$id');"; 
+1

Cảm ơn bạn! Nó đã làm việc. – doonot

0

bạn cần phải loại bỏ đỉnh cho đặt dấu thời gian càng lâu

insert into sale(service, amount, date, customerid_fk) values('$service', '$amount', $timestamp, '$id') 

hoặc sử dụng định dạng này cho ngày 'Ymd H: i: s'

0

nếu bạn có loại trường ngày như DATE hoặc DATE/TIME nó sẽ thêm dấu thời gian như thế này. bạn cần phải làm cho kiểu trường ngày tháng của bạn là varchar và thêm dấu thời gian của bạn dưới dạng chuỗi.

nếu bạn cần phải thêm ngày ở định dạng d/m/y thì mysql có định dạng khác nhau như y-m-d vì vậy trước khi thêm bạn có thể làm như thế này

date('y-m-d', strtotime('your-date-string'))

0

này đã làm việc cho tôi:

//timestamp fix 
$date = new \DateTime(); 
$created_at = $date->setTimestamp(intval($timestamp)); 
0
SELECT UNIX_TIMESTAMP('2005-03-27 03:00:00'); -- **1111885200** 
SELECT FROM_UNIXTIME(1111885200);    -- **2005-03-27 03:00:00** 
$date = $_POST['date']; 
$timestamp = date('Y-m-d H:i:s', strtotime($date)); 

$sql = "insert into sale(service, amount, date, customerid_fk) values 
    ('$service', '$amount', UNIX_TIMESTAMP('$timestamp'), '$id');" 
0

bạn nên sử dụng phương pháp mysql

Tôi có ngày này từ một datebox của easyui

08/25/2016

sau đó

$date = "FROM_UNIXTIME(".strtotime(08/25/2016).")"; 

INSERT INTO TABLE (col1, col2, dateI) values($a, $X, $date); 
Các vấn đề liên quan