好的,所以我有这个代码。
else if($_POST['sdate'] == 'this month')
{
$startdate = date("m/d/y");
$newdate = Datetime::createFromFormat("m/d/y",$startdate);
$dpicker = $newdate->format("Y-m-d");
echo $dpicker;
$enddates = date("m/d/y");
$newEdate = Datetime::createFromFormat("m/d/y",$enddates);
$newEdate->modify('-20 day');
$edpicker = $newEdate->format("Y-m-d");
echo $edpicker;
$thdate = $dpicker;
$thdates = $edpicker;
$sql = "SELECT * FROM orders WHERE loggedtime BETWEEN :times AND :time";
$q=$con->prepare($sql);
$q->bindparam(":time", $thdate);
$q->bindparam(":times", $thdates);
$q->execute();
while($data=$q->fetch(PDO::FETCH_ASSOC))
{
echo $data['customer'];
}
}
所以现在$edpicker
将从今天起倒退20天。。。我希望它能计算出今天是7号,所以只追溯到7天前。。我希望这个变量总是回到月初。所以如果今天是18号。。它可以追溯到18天以前。
做这件事最好的方法是什么?
$firstDayOfMonth = new 'DateTime('first day of this month');
如果您使用的是PHP 5.3,您可以使用"本月的第一天"。即:
$edpicker = new DateTime('first day of this month');
否则,如果您使用的PHP 5.3以下,则可以使用
("m/01/y", $enddates)