如何将日期转换为相同的格式?

时间:2011-05-24 19:59:15

标签: php time

我想获得$ registratiedag并计算额外的几天,但我总是被困在它需要成为UNIX时间戳的事实上?我做了一些谷歌,但我真的不明白。

我希望有人可以帮我解决这个问题。这是我到目前为止所得到的。

$registratiedag = $oUser['UserRegisterDate'];
$today = strtotime('$registratiedag + 6 days');

echo $today;            
echo $registratiedag;

echo date('Y-m-d', $today);

strtotime('$registratiedag + 6 days');部分显然有问题,因为我总是得到1970-01-01

4 个答案:

答案 0 :(得分:1)

你可能想要这个:

// Store as a timestamp
$registratiedag = strtotime($oUser['UserRegisterDate']);
$new_date = strtotime('+6 days', $registratiedag);

// You'll need to format for printing $new_date
echo date('Y-m-d', $new_date);

// I think you want to compare $new_date against
// today's date. I'd recommend a string comparison here,
// As time() includes the time as well
// time() is implied as the second argument to date,
// But we'll put it anyways just to be clearer 
if( date('Y-m-d', $new_date) == date('Y-m-d', time()) ) {
  // The dates are equal, do something here
}
else if($new_date < time()) {
  // if the new date is earlier than today
}
// etc.

首先,它将$registratiedag转换为时间戳,然后再添加6天

编辑:您可能应该将$today更改为更少误导的内容,例如$modified_date或其他

答案 1 :(得分:0)

尝试:

$ today = strtorime($ registratiedag); $ today + = 86400 * 6; //秒1天* 6天

至少有一个问题是PHP不会用单引号扩展变量。

答案 2 :(得分:0)

$today = strtotime("$registratiedag + 6 days"); 
//use double quotes and not single quotes when embedding a php variable in a string

答案 3 :(得分:0)

如果您希望将变量$registratiedag的值包含在作为strtotime参数传递的文本中,则必须将该参数括在"中,而不是'。 }。