Php 为什么不是';t DateTime::是否按预期工作?
多亏了对这个问题的回答,我才能够从MySQL数据库中输出一个日期列表,这些日期将来(即今天之后)使用PHP。但是,如果我想让“今天”稍微往后退一点怎么办;换句话说,如果我希望某个日期不提前一周出现在日期列表中 我尝试使用以下代码使用Php 为什么不是';t DateTime::是否按预期工作?,php,mysql,datetime,pdo,Php,Mysql,Datetime,Pdo,多亏了对这个问题的回答,我才能够从MySQL数据库中输出一个日期列表,这些日期将来(即今天之后)使用PHP。但是,如果我想让“今天”稍微往后退一点怎么办;换句话说,如果我希望某个日期不提前一周出现在日期列表中 我尝试使用以下代码使用DateTime::sub,但它会杀死我的脚本(我只是得到一个空白屏幕-如果我注释掉DateTime::sub行,它会再次工作。我仍然没有找到如何让PDO回显错误详细信息的方法): $dateToday=newdatetime('now'); $dateToday->
DateTime::sub
,但它会杀死我的脚本(我只是得到一个空白屏幕-如果我注释掉DateTime::sub行,它会再次工作。我仍然没有找到如何让PDO回显错误详细信息的方法):
$dateToday=newdatetime('now');
$dateToday->sub(新的日期间隔('P7D');
做{
$dateCompare=newdatetime($row['date']);
如果($dateCompare>$dateToday){
回显“”.$dateCompare->format('Y-m-d')。”;
}否则{
回显“假”;
}
}而($row=$stmt->fetch(PDO::fetch_ASSOC));
有什么想法吗?您的代码对我来说很好,我想这行代码有问题:
$dateCompare = new DateTime($row['date']);
美元行的日期是什么格式
我建议使用
$date = DateTime::createFromFormat('The format your dates are in', $row['date']);
有关可能的日期格式,请参阅
e、 g.Y-m-d将解析2012-10-28
如果您有一个旧版本的PHP,您可以通过比较字符串来尝试这种“低技术”解决方案
// Assuming your mysql is Y-m-d
$dateToday = date('Y-m-d')
do{
if ($row['date'] > $dateToday){
echo '<p>'.$dateCompare -> format('Y-m-d').'</p>';
} else {
echo '<p>FALSE</p>';
}
while...
//假设您的mysql是Y-m-d
$dateToday=日期('Y-m-d')
做{
如果($row['date']>$dateToday){
回显“”.$dateCompare->format('Y-m-d')。”;
}否则{
回显“假”;
}
虽然
@PezCuckow:这是DateIntervalSee的一种可能性构造方法:“格式以字母P开头,表示“period”。每个持续时间段由一个整数值和一个句点指示符表示。”$date变量在我的MySQL数据库中是日期格式的,Y-m-d。如果我注释掉sub
行,它工作得很好。DateTime::createFromFormat('Y-m-d')
会工作得很好!你有什么PHP版本?sub只受支持(PHP5>=5.3.0)
啊哈!它是5.2。重新配置的MAMP使用5.5,它正在工作。谢谢。
// Assuming your mysql is Y-m-d
$dateToday = date('Y-m-d')
do{
if ($row['date'] > $dateToday){
echo '<p>'.$dateCompare -> format('Y-m-d').'</p>';
} else {
echo '<p>FALSE</p>';
}
while...