Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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 从日期时间中减去天数_Php_Datetime - Fatal编程技术网

Php 从日期时间中减去天数

Php 从日期时间中减去天数,php,datetime,Php,Datetime,我现在就开门见山了。下面是我的功能失调代码,它通过从结束时间中减去一个间隔来查找开始时间: $timeEnd = "2015-01-08T12:53:13-05:00"; //retrieved from bot crawler $interval = date_interval_create_from_date_string("10 days"); $timeEndOb = new DateTime($timeEnd); $timeStartOb = $time

我现在就开门见山了。下面是我的功能失调代码,它通过从结束时间中减去一个间隔来查找开始时间:

    $timeEnd = "2015-01-08T12:53:13-05:00"; //retrieved from bot crawler
    $interval = date_interval_create_from_date_string("10 days");
    $timeEndOb = new DateTime($timeEnd);
    $timeStartOb = $timeEndOb->sub($interval);
    $timeStart = $timeStartOb->format('Y-m-d H:i:s');
    echo $timeStart;
    //echoing 2015-01-08 12:53:13

我的愚蠢问题是什么?

只需使用
strotime
函数和
date
函数即可

$timestamp_end = strtotime("2015-01-08T12:53:13");// Note, I removed the timezone
$date_start = date('Y-m-d H:i:s', strtotime('-10 days', $timestamp_end));
$date_end = date('Y-m-d H:i:s', $timestamp_end);
echo $date_start.' to '.$date_end;

2014-12-29 12:53:13至2015-01-08 12:53:13

您只需使用
strotime
功能和
date
功能即可完成此操作

$timestamp_end = strtotime("2015-01-08T12:53:13");// Note, I removed the timezone
$date_start = date('Y-m-d H:i:s', strtotime('-10 days', $timestamp_end));
$date_end = date('Y-m-d H:i:s', $timestamp_end);
echo $date_start.' to '.$date_end;

2014-12-29 12:53:13至2015-01-08 12:53:13

您只需使用
strotime
功能和
date
功能即可完成此操作

$timestamp_end = strtotime("2015-01-08T12:53:13");// Note, I removed the timezone
$date_start = date('Y-m-d H:i:s', strtotime('-10 days', $timestamp_end));
$date_end = date('Y-m-d H:i:s', $timestamp_end);
echo $date_start.' to '.$date_end;

2014-12-29 12:53:13至2015-01-08 12:53:13

您只需使用
strotime
功能和
date
功能即可完成此操作

$timestamp_end = strtotime("2015-01-08T12:53:13");// Note, I removed the timezone
$date_start = date('Y-m-d H:i:s', strtotime('-10 days', $timestamp_end));
$date_end = date('Y-m-d H:i:s', $timestamp_end);
echo $date_start.' to '.$date_end;
2014-12-29 12:53:13至2015-01-08 12:53:13

您可以使用克隆对象:

$timeEnd='2015-01-08T12:53:13-05:00';
$timeEndOb=新日期时间($timeEnd);
$timeStartOb=克隆$timeEndOb;
$timeStartOb->modify('-10天');
echo$timeStart=$timeStartOb->format('c');

或者您可以使用PHP>=5.5.0类,其行为与
DateTime
相同,只是它从不修改自身,而是返回一个新对象:

$timeEnd='2015-01-08T12:53:13-05:00';
$timeEndOb=新的日期时间不可变($timeEnd);
$timeStartOb=$timeEndOb->modify('-10天');
echo$timeStart=$timeStartOb->format('c');

您可以使用克隆对象:

$timeEnd='2015-01-08T12:53:13-05:00';
$timeEndOb=新日期时间($timeEnd);
$timeStartOb=克隆$timeEndOb;
$timeStartOb->modify('-10天');
echo$timeStart=$timeStartOb->format('c');

或者您可以使用PHP>=5.5.0类,其行为与
DateTime
相同,只是它从不修改自身,而是返回一个新对象:

$timeEnd='2015-01-08T12:53:13-05:00';
$timeEndOb=新的日期时间不可变($timeEnd);
$timeStartOb=$timeEndOb->modify('-10天');
echo$timeStart=$timeStartOb->format('c');

您可以使用克隆对象:

$timeEnd='2015-01-08T12:53:13-05:00';
$timeEndOb=新日期时间($timeEnd);
$timeStartOb=克隆$timeEndOb;
$timeStartOb->modify('-10天');
echo$timeStart=$timeStartOb->format('c');

或者您可以使用PHP>=5.5.0类,其行为与
DateTime
相同,只是它从不修改自身,而是返回一个新对象:

$timeEnd='2015-01-08T12:53:13-05:00';
$timeEndOb=新的日期时间不可变($timeEnd);
$timeStartOb=$timeEndOb->modify('-10天');
echo$timeStart=$timeStartOb->format('c');

您可以使用克隆对象:

$timeEnd='2015-01-08T12:53:13-05:00';
$timeEndOb=新日期时间($timeEnd);
$timeStartOb=克隆$timeEndOb;
$timeStartOb->modify('-10天');
echo$timeStart=$timeStartOb->format('c');

或者您可以使用PHP>=5.5.0类,其行为与
DateTime
相同,只是它从不修改自身,而是返回一个新对象:

$timeEnd='2015-01-08T12:53:13-05:00';
$timeEndOb=新的日期时间不可变($timeEnd);
$timeStartOb=$timeEndOb->modify('-10天');
echo$timeStart=$timeStartOb->format('c');


您的投入和预期产出是什么?我的预期产出是2014-12-28 12:53:13。正好在$timeEnd前10天。不知道你所说的输入是什么意思。我相信我的所有变量都可以在这里混合。您正在使用php版本(PHP5>=5.3.0)?@Brimby Mark的评论更像是旁注,它不会改变代码的行为。您的脚本不可能返回您在任何已知php版本上声明的结果。您的输入和预期输出是什么?我的预期输出是2014-12-28 12:53:13。正好在$timeEnd前10天。不知道你所说的输入是什么意思。我相信我的所有变量都可以在这里混合。您正在使用php版本(PHP5>=5.3.0)?@Brimby Mark的评论更像是旁注,它不会改变代码的行为。您的脚本不可能返回您在任何已知php版本上声明的结果。您的输入和预期输出是什么?我的预期输出是2014-12-28 12:53:13。正好在$timeEnd前10天。不知道你所说的输入是什么意思。我相信我的所有变量都可以在这里混合。您正在使用php版本(PHP5>=5.3.0)?@Brimby Mark的评论更像是旁注,它不会改变代码的行为。您的脚本不可能返回您在任何已知php版本上声明的结果。您的输入和预期输出是什么?我的预期输出是2014-12-28 12:53:13。正好在$timeEnd前10天。不知道你所说的输入是什么意思。我相信我的所有变量都可以在这里混合。您正在使用php版本(PHP5>=5.3.0)?@Brimby Mark的评论更像是旁注,它不会改变代码的行为。你的脚本不可能返回你所说的在任何已知php版本上返回的内容。你为什么要删除时区?Unix时间戳将是无效的(只有当全局时区设置为与输入相同时它才有效)。我没有理由这么做@Glavić那么你写的正是无效的时间戳。你为什么要删除时区?Unix时间戳将是无效的(只有当全局时区设置为与输入相同时它才有效)。我没有理由这么做@Glavić那么你写的正是无效的时间戳。你为什么要删除时区?Unix时间戳将是无效的(只有当全局时区设置为与输入相同时它才有效)。我没有理由这么做@Glavić那么你写的正是无效的时间戳。你为什么要删除时区?Unix时间戳将是无效的(只有当全局时区设置为与输入相同时它才有效)