Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.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 用strotime理解数据处理_Php_Date_Strtotime - Fatal编程技术网

Php 用strotime理解数据处理

Php 用strotime理解数据处理,php,date,strtotime,Php,Date,Strtotime,我正试图让我的头脑了解其他人的代码,这些代码是他们为处理新闻报道发布日期而编写的。问题出现了,因为他们正在使用这条线路- $date = strtotime("midnight", strtotime($dateString)); 使用jquery日历小部件处理所选日期。这对于将来的日期很有效,但是当您尝试使用上一个日历年中的日期时,它会使用当前年份。我认为这是因为午夜找到了所选日期和月份的最近实例 我可以取消午夜,但我不确定这会有什么影响-有没有理由午夜会出现 编辑:这是处理日期的完整代码块

我正试图让我的头脑了解其他人的代码,这些代码是他们为处理新闻报道发布日期而编写的。问题出现了,因为他们正在使用这条线路-

$date = strtotime("midnight", strtotime($dateString));
使用jquery日历小部件处理所选日期。这对于将来的日期很有效,但是当您尝试使用上一个日历年中的日期时,它会使用当前年份。我认为这是因为午夜找到了所选日期和月份的最近实例

我可以取消午夜,但我不确定这会有什么影响-有没有理由午夜会出现

编辑:这是处理日期的完整代码块。日期包含允许用户在特定时间发布项目的时间

            $array['display_date'] = '24 October, 2011 17:30';
            $string = $array['display_date'];
            $dateString = substr($string, 0, -5);

            $timeArray = explode(':', substr($string, -5));
            $hours_in_secs = 60 * 60 * $timeArray[0];
            $mins_in_secs = $timeArray[1];
            $date = strtotime("midnight", strtotime($dateString));

            $timestamp = $date + $hours_in_secs + $mins_in_secs;

            //assign timestamp to validation array
            $array['display_date'] = $timestamp;
            echo $array['display_date']; // Output = 1351094430 (Oct 24 2012 17:00:30)

这实际上取决于$dateString包含的内容。假设jQuery小部件也提供了时间部分,那么您的同事可能希望删除时间部分。比较以下各项:

echo date(DATE_ATOM, strtotime('2010-10-01 17:32:00'));
// 2010-10-01T17:32:00+02:00

echo date(DATE_ATOM, strtotime("midnight", strtotime('2010-10-01 17:32:00')));
// 2010-10-01T00:00:00+02:00
如果您的小部件没有返回时间部分,我看不出有任何理由将日期设置为午夜,因为它将自动设置为午夜:

echo date(DATE_ATOM, strtotime('2010-10-01'));
// 2010-10-01T00:00:00+02:00
请注意,所有这些都是过去的日期,它们将导致过去的给定年份,而不是您所说的当前年份。如果他们在你的代码中这样做了,那么原因一定在其他地方

当你更改代码时会有反响吗?我们不知道。这只是一行代码,我们不知道任何上下文。当你改变代码时,你应该告诉你什么时候有东西坏了

更新后编辑

您显示的代码块毫无意义。问问写这封信的人它应该做什么。它不仅会错误地返回过去几年的当前年份,而且还会给出错误的会议记录结果,例如

24 March, 2010 17:30 will be 2012-03-24T17:00:30+01:00
我假设这是一次试图将2010年3月24日17:30转换为有效时间戳的尝试,该时间戳的格式是strotime无法识别的。但这一方针已被打破。当您使用PHP5.3时,请使用

$dt = DateTime::createFromFormat('d F, Y H:i', '24 March, 2010 17:30');
echo $dt->format(DATE_ATOM); // 2010-03-24T17:30:00+01:00

如果您还没有使用5.3,请查看其他解决方案。其中有一对。

这实际上取决于$dateString包含的内容。假设jQuery小部件也提供了时间部分,那么您的同事可能希望删除时间部分。比较以下各项:

echo date(DATE_ATOM, strtotime('2010-10-01 17:32:00'));
// 2010-10-01T17:32:00+02:00

echo date(DATE_ATOM, strtotime("midnight", strtotime('2010-10-01 17:32:00')));
// 2010-10-01T00:00:00+02:00
如果您的小部件没有返回时间部分,我看不出有任何理由将日期设置为午夜,因为它将自动设置为午夜:

echo date(DATE_ATOM, strtotime('2010-10-01'));
// 2010-10-01T00:00:00+02:00
请注意,所有这些都是过去的日期,它们将导致过去的给定年份,而不是您所说的当前年份。如果他们在你的代码中这样做了,那么原因一定在其他地方

当你更改代码时会有反响吗?我们不知道。这只是一行代码,我们不知道任何上下文。当你改变代码时,你应该告诉你什么时候有东西坏了

更新后编辑

您显示的代码块毫无意义。问问写这封信的人它应该做什么。它不仅会错误地返回过去几年的当前年份,而且还会给出错误的会议记录结果,例如

24 March, 2010 17:30 will be 2012-03-24T17:00:30+01:00
我假设这是一次试图将2010年3月24日17:30转换为有效时间戳的尝试,该时间戳的格式是strotime无法识别的。但这一方针已被打破。当您使用PHP5.3时,请使用

$dt = DateTime::createFromFormat('d F, Y H:i', '24 March, 2010 17:30');
echo $dt->format(DATE_ATOM); // 2010-03-24T17:30:00+01:00

如果您还没有使用5.3,请查看其他解决方案。其中有一对。

$dateString的格式是什么?示例输入、预期输出、实际输出?使用示例输入和输出更新$dateString的格式是什么?示例输入、预期输出、实际输出?使用示例输入和输出更新答复的hanks。事实上,新闻项目是为了允许用户在准确的时间发布它们而设置的,因此日期和时间是通过日历选择的。刚刚检查了这个,它工作正常。我将添加完整的代码块OK-我最好废弃其中的内容,从头开始。感谢Gordon今年之前的逗号是主要问题,其余的代码也需要整理。感谢Gordon的回复。事实上,新闻项目是为了允许用户在准确的时间发布它们而设置的,因此日期和时间是通过日历选择的。刚刚检查了这个,它工作正常。我将添加完整的代码块OK-我最好废弃其中的内容,从头开始。感谢Gordon今年之前的逗号是主要问题,代码的其余部分也需要整理。