Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 转换SQL的日期格式_Php_Mysql_Date_Mysqli - Fatal编程技术网

Php 转换SQL的日期格式

Php 转换SQL的日期格式,php,mysql,date,mysqli,Php,Mysql,Date,Mysqli,我知道这个问题已经被问了很多次了,但对我来说什么都不管用 我想从输入中提取日期并将其存储在我的数据库(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_par

我知道这个问题已经被问了很多次了,但对我来说什么都不管用

我想从输入中提取日期并将其存储在我的数据库(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);
但这行不通

输入日期:2014年7月17日(echo$ses_)

转换日期:1970-01-01(Unix开始)(美元SEU n_s)

我做错了什么

另外,我如何反向提取日期,我希望日期显示为d/m/Y而不是Y/m/d(如DB)

提前感谢。

编辑:

我发现了这个问题(多亏了乔纳森),我用的是dd/mm/yyyy而不是mm/dd/yyy


因此,如果我可以更改我的问题,我如何将dd/mm/yyy转换为yyyy/mm/dd

代码有两个问题

1) insert语句有问题,ses_日期后出现错误 2) 传入的日期/时间格式不正确

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

$q = 'INSERT INTO date_t (ses_date_s) VALUES (?)';
strotime认为,通过dd/mm/yyyyy(加拿大标准)的区域设置并没有得到广泛认可,它希望在大多数情况下是mm/dd/yyyy(美国标准)

我建议您不要依赖strotime来创建时间戳,而是以mysql首选格式传入数据,或者传入实际的时间戳本身

至于从数据库中实际获取日期,strotime可以很好地处理来自mysql的数据,因为它将被正确识别

$q = 'INSERT INTO date_t (ses_date_s,) VALUES (?)';
因此,当你从数据库中提取数据时,你可以这样做

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

代码有两个问题

1) insert语句有问题,ses_日期后出现错误 2) 传入的日期/时间格式不正确

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

$q = 'INSERT INTO date_t (ses_date_s) VALUES (?)';
strotime认为,通过dd/mm/yyyyy(加拿大标准)的区域设置并没有得到广泛认可,它希望在大多数情况下是mm/dd/yyyy(美国标准)

我建议您不要依赖strotime来创建时间戳,而是以mysql首选格式传入数据,或者传入实际的时间戳本身

至于从数据库中实际获取日期,strotime可以很好地处理来自mysql的数据,因为它将被正确识别

$q = 'INSERT INTO date_t (ses_date_s,) VALUES (?)';
因此,当你从数据库中提取数据时,你可以这样做

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

代码有两个问题

1) insert语句有问题,ses_日期后出现错误 2) 传入的日期/时间格式不正确

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

$q = 'INSERT INTO date_t (ses_date_s) VALUES (?)';
strotime认为,通过dd/mm/yyyyy(加拿大标准)的区域设置并没有得到广泛认可,它希望在大多数情况下是mm/dd/yyyy(美国标准)

我建议您不要依赖strotime来创建时间戳,而是以mysql首选格式传入数据,或者传入实际的时间戳本身

至于从数据库中实际获取日期,strotime可以很好地处理来自mysql的数据,因为它将被正确识别

$q = 'INSERT INTO date_t (ses_date_s,) VALUES (?)';
因此,当你从数据库中提取数据时,你可以这样做

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

代码有两个问题

1) insert语句有问题,ses_日期后出现错误 2) 传入的日期/时间格式不正确

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

$q = 'INSERT INTO date_t (ses_date_s) VALUES (?)';
strotime认为,通过dd/mm/yyyyy(加拿大标准)的区域设置并没有得到广泛认可,它希望在大多数情况下是mm/dd/yyyy(美国标准)

我建议您不要依赖strotime来创建时间戳,而是以mysql首选格式传入数据,或者传入实际的时间戳本身

至于从数据库中实际获取日期,strotime可以很好地处理来自mysql的数据,因为它将被正确识别

$q = 'INSERT INTO date_t (ses_date_s,) VALUES (?)';
因此,当你从数据库中提取数据时,你可以这样做

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

$\u POST['ses\u date\s']是字符串,但date()需要整数(Unix时间戳)。您可以使用strotime()将前者转换为后者,尽管它只希望日期遵循美国的mm/dd/yy约定。对象具有更复杂的日期解析功能。

$\u POST['ses\u date\s']是一个字符串,但date()需要一个整数(Unix时间戳)。您可以使用strotime()将前者转换为后者,尽管它只希望日期遵循美国的mm/dd/yy约定。对象具有更复杂的日期解析功能。

$\u POST['ses\u date\s']是一个字符串,但date()需要一个整数(Unix时间戳)。您可以使用strotime()将前者转换为后者,尽管它只希望日期遵循美国的mm/dd/yy约定。对象具有更复杂的日期解析功能。

$\u POST['ses\u date\s']是一个字符串,但date()需要一个整数(Unix时间戳)。您可以使用strotime()将前者转换为后者,尽管它只希望日期遵循美国的mm/dd/yy约定。该对象具有更复杂的日期解析功能。

Maverick您可以分解发布日期,然后按照您需要的顺序排列数据:

$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

Maverick您可以分解发布日期,然后按照您需要的顺序排列数据:

$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

Maverick您可以分解发布日期,然后按照您需要的顺序排列数据:

$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

Maverick您可以分解发布日期,然后按照您需要的顺序排列数据:

$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
不要介意那里的(,)是偶然的,因为我有更多的值,但我删除了它们以获得清晰的代码。我发现问题,我输入的日期是dd/mm/yyyy而不是mm/dd/yyyy。。。因此,如果我可以更改我的问题,我如何将dd/mm/yyy转换为yyyy/mm/dd,请不要介意(,),因为我有更多的值,但我删除了它们以获得清晰的代码。我发现问题,我输入的日期是dd/mm/yyyy而不是mm/dd/yyyy。。。因此,如果我可以更改我的问题,我如何将dd/mm/yyy转换为yyyy/mm/dd,请不要介意(,),因为我有更多的值,但我删除了它们以获得清晰的代码。我发现问题,我输入的日期是dd/mm/yyyy而不是mm/dd/yyyy。。。因此,如果我可以更改我的问题,我如何将dd/mm/yyy转换为yyyy/mm/d