PHP在日期到达时删除内容

PHP在日期到达时删除内容,php,date,Php,Date,我试图制作一个简单的脚本,当日期到达时隐藏内容 因此,当日期为2016年11月3日时,显示内容,但当日期为2016年15月3日时,隐藏内容 if(date(m-d-Y) > "03-15-2016") { // do stuff } 遗憾的是,下面的脚本由于某些原因无法工作,任何帮助都会很好,谢谢 考虑使用以下方法: $today = time(); // time() is now (timestamp) since epoch $hideIt = strtotime("2016-

我试图制作一个简单的脚本,当日期到达时隐藏内容

因此,当日期为2016年11月3日时,显示内容,但当日期为2016年15月3日时,隐藏内容

if(date(m-d-Y) > "03-15-2016") {
  // do stuff
}

遗憾的是,下面的脚本由于某些原因无法工作,任何帮助都会很好,谢谢

考虑使用以下方法:

$today = time(); // time() is now (timestamp) since epoch
$hideIt = strtotime("2016-03-15"); // timestamp of date to hide stuff

if ( $today > $hideIt ) // if today is greater than the date we want to hide things
{
    // do stuff...
}

考虑使用以下方法:

$today = time(); // time() is now (timestamp) since epoch
$hideIt = strtotime("2016-03-15"); // timestamp of date to hide stuff

if ( $today > $hideIt ) // if today is greater than the date we want to hide things
{
    // do stuff...
}

date
函数返回一个字符串。比较字符串可能会导致一些意外结果。您需要比较的是日期的时间戳:

if (strtotime("now") > strtotime("03/15/2016 00:00:00")) {
    // do stuff
}

注意,我将您的
“03-15-2016”
更改为
“03/15/2016”
,因为它的格式可以由
strotime
函数解析。

日期
函数返回字符串。比较字符串可能会导致一些意外结果。您需要比较的是日期的时间戳:

if (strtotime("now") > strtotime("03/15/2016 00:00:00")) {
    // do stuff
}

注意,我将您的
“03-15-2016”
更改为
“03/15/2016”
,因为它的格式可以通过
strotime
函数解析。

如果您希望保持与当前脚本相同的格式,这将起作用:

<?php
if(strtotime(date("Y-m-d")) > strtotime("2016-1-04")) {
  // do stuff
}
?>

如果您希望保持与当前脚本相同的格式,这将起作用:

<?php
if(strtotime(date("Y-m-d")) > strtotime("2016-1-04")) {
  // do stuff
}
?>

您的语法不起作用,因为您以错误的顺序使用参数。您需要按照年、月、日的先后顺序使用它们:

if (date('Y-m-d') > '2016-03-15') {
    // do stuff
}

您的语法不起作用,因为您以错误的顺序使用参数。您需要按照年、月、日的先后顺序使用它们:

if (date('Y-m-d') > '2016-03-15') {
    // do stuff
}

如果要比较日期字符串,则需要使用年-月-日格式,而不是月-日-年格式。此外,您还需要在日期函数中引用格式化参数。如果要比较字符串日期格式,请使用
Y-m-d
format
03-15-2016
is
对不起,不是指实际的格式字符串YMD,我指的是第一年而不是第一个月。如果要比较日期字符串,则需要使用年-月-日-年格式。此外,您还需要在日期函数中引用格式化参数。如果要比较字符串日期格式,请使用
Y-m-d
format
03-15-2016
is
对不起,这不是实际的格式字符串YMD,我指的是第一年而不是第一个月。@Carl如果您喜欢我的答案,请将其标记为正确答案。这行不通。strtotime(“2016年8月3日”)是8月3日,而不是3月8日。你不能保证X-Y-Z会被解释为M-D-Y。@AlexHowansky你能解释一下你的意思吗?
strotime(“03-8-2016”)
将03解释为日,将8解释为月。也就是说,给定X-Y-Z,并且X和Y都小于13,它不知道你是指M-D-Y还是D-M-Y。你根本不需要strotime(),你可以直接比较字符串,只要你将它们格式化为YYYYMMDD。@Carl如果你喜欢我的答案,请将它标记为正确答案。这行不通。strtotime(“2016年8月3日”)是8月3日,而不是3月8日。你不能保证X-Y-Z会被解释为M-D-Y。@AlexHowansky你能解释一下你的意思吗?
strotime(“03-8-2016”)
将03解释为日,将8解释为月。也就是说,给定X-Y-Z,并且X和Y都小于13,它不知道您指的是M-D-Y还是D-M-Y。您根本不需要strotime(),只要将字符串格式化为YYYYMMDD,就可以直接比较字符串。