Php 在Y-m-d H:i:s格式的日期上以Unix时间戳格式添加90天

Php 在Y-m-d H:i:s格式的日期上以Unix时间戳格式添加90天,php,unix-timestamp,strtotime,Php,Unix Timestamp,Strtotime,如何向预定义的Y-m-d H:I:s格式化日期添加90天,并将其转换为Unix时间戳,以便将其作为setcookie()的过期参数发送 我尝试了以下方法: var_dump(strtotime('+90 days', '1994-02-21 08:01:13')); 哪些产出: 注意:在第3行的[file path]中遇到格式不正确的数值 国际电话(77994) 的第二个参数需要时间戳,而不是字符串。换句话说,您需要对第二个参数调用strotime(),如下所示: var_dump(strto

如何向预定义的
Y-m-d H:I:s
格式化日期添加90天,并将其转换为Unix时间戳,以便将其作为
setcookie()的过期参数发送

我尝试了以下方法:

var_dump(strtotime('+90 days', '1994-02-21 08:01:13'));
哪些产出:

注意:在第3行的[file path]中遇到格式不正确的数值

国际电话(77994)

的第二个参数需要时间戳,而不是字符串。换句话说,您需要对第二个参数调用
strotime()
,如下所示:

var_dump(strtotime('+90 days', strtotime('1994-02-21 08:01:13')));
也可以使用更简单的解决方案(不使用第二个参数):

var_dump(strtotime('1994-02-21 08:01:13 +90 days'));
的第二个参数需要时间戳,而不是字符串。换句话说,您需要对第二个参数调用
strotime()
,如下所示:

var_dump(strtotime('+90 days', strtotime('1994-02-21 08:01:13')));
也可以使用更简单的解决方案(不使用第二个参数):

var_dump(strtotime('1994-02-21 08:01:13 +90 days'));

我将我的答案转换成一个默认为90天的函数,但可以接受任意天数。 由下一个编码器来完成任何纠错/检测

date_default_timezone_set('America/New_York');

function add_days($input,$days=90){
   $timestamp=strtotime($input);
   $future = $timestamp + (60*60*24*$days);
   //$future_string = date('Y-m-d H:i:s', $future);
   //return $future_string;
   return $future;
 }

echo add_days('1994-02-21 08:01:13'); // default 90
echo "\n";
echo add_days('1994-02-21 08:01:13',10);  // 10, just to show a non-default return
奥图普特:

1994-05-22 09:01:13
1994-03-03 08:01:13


我将我的答案转换成一个默认为90天的函数,但可以接受任意天数。 由下一个编码器来完成任何纠错/检测

date_default_timezone_set('America/New_York');

function add_days($input,$days=90){
   $timestamp=strtotime($input);
   $future = $timestamp + (60*60*24*$days);
   //$future_string = date('Y-m-d H:i:s', $future);
   //return $future_string;
   return $future;
 }

echo add_days('1994-02-21 08:01:13'); // default 90
echo "\n";
echo add_days('1994-02-21 08:01:13',10);  // 10, just to show a non-default return
奥图普特:

1994-05-22 09:01:13
1994-03-03 08:01:13


使用DateTime,您可以轻松地在unix时间戳或格式之间进行交换

$date = new DateTime("1994-02-21 08:01:13");
$date->add(DateInterval::createFromDateString("90 days"));
var_dump($date->getTimestamp()); // Prints: int(769593673)
//var_dump($date->format("Y-m-d H:i:s")); // Prints: 1994-05-22 08:01:13

使用DateTime,您可以轻松地在unix时间戳或格式之间进行交换

$date = new DateTime("1994-02-21 08:01:13");
$date->add(DateInterval::createFromDateString("90 days"));
var_dump($date->getTimestamp()); // Prints: int(769593673)
//var_dump($date->format("Y-m-d H:i:s")); // Prints: 1994-05-22 08:01:13

@萨拉:奇怪的胡须间距是为了便于阅读。个人偏好的格式,防止我搞砸了。很抱歉,您不喜欢它,但几乎不需要编辑它,因为它不会影响代码的正确运行,并且很清楚哪个部分属于哪里。我在你的编辑上的5美分。:)@萨拉:奇怪的胡须间距是为了便于阅读。个人偏好的格式,防止我搞砸了。很抱歉,您不喜欢它,但几乎不需要编辑它,因为它不会影响代码的正确运行,并且很清楚哪个部分属于哪里。我在你的编辑上的5美分。:)