1

我对 PHP 很陌生,但对 C 有很好的理解,

当我想访问我在 PHP 中创建的 API 上的一些帖子数据时,我使用:

 $_POST['date_set']

获取传递给日期的值 - 这一切都很完美,但是我读到我应该像这样获取它:

$date_set = trim(urldecode($_POST['date_set']));

这总是返回一个 00:00:00 值,它存储在我的数据库中后的日期。

当我使用$_POST['date_set']直接访问时,我会得到发布的任何值,例如:2013-08-28 10:31:03

有人可以告诉我我在搞砸什么吗?

4

4 回答 4

2

你应该试试看,

$date_set = $_POST['date_set'].explode(' ');//('2013-08-28 10:31:03').explode(' ')
echo $date_set[1];

或者

echo date('H:i:s',strtotime($_POST['date_set'])));
//echo date('H:i:s',strtotime('2013-08-28 10:31:03'));

如果您是php 新手,请阅读date()

于 2013-08-28T11:36:57.713 回答
1

您只运行urldecode数据是 URL 编码的。PHP 将在填充之前对其进行解码$_POST,因此您当然不应该使用它。(如果您正在处理双重编码的数据,您可能必须这样做,但正确的解决方案应该是不对数据进行双重编码)。

trim删除前导和尾随空格。如果您有一个自由格式的输入,其中可能会键入流氓空格,这将很有用。之后您需要进行进一步的健全性检查。

于 2013-08-28T11:36:43.820 回答
1
urldecode — Decodes URL-encoded string

Description 
string urldecode ( string $str )
Decodes any %## encoding in the given string. Plus symbols ('+') are decoded to a space character. 

urldecode: 仅用于 GET 请求。你应该只使用 $_POST['date_set'] 没问题。

http://php.net/manual/en/function.urldecode.php

于 2013-08-28T11:37:12.277 回答
1

你最好这样做

if(isset($_POST['date_set'])){
 $date_set = $_POST['date_set'];
}

那么你可以根据需要使用 $date_set 。如果 $date_set 仍然是 00:00:00,则问题出在为您提供 $_POST 值的代码上。

于 2013-08-28T11:37:56.750 回答