假设我在MySQL中有一个表,其中包含DateTime
类型的字段。我们称该字段为fa
。
现在让我们假设我在 Yii 1 (1.1.16( 中有以下代码:
$model = MyTable->createNewModel(); // <-- pseudo code
$model->fa = new DateTime("now");
$model->save();
$model = MyTable->getByPk(1); // <-- pseudo code
$model->fa; // <-- question 1
$model->fa = $model->fa->modify("+1 month"); // <-- question 2
$model->save();
我有以下问题:
问题1:
变量$model->fa
是什么类型(在带有"问题 1"的注释行(?是字符串吗?它是 PHP 的DateTime
类型吗?还是某种 Yii 表示DateTime
?
问题2:
如果我之前的问题的答案是"PHP 的DateTime
类型",那么带有"问题 2"注释的行是完全有效的,它应该没有任何问题。但是,PHP的DateTime
类型不是$model->fa
是什么类型的呢?我将如何为$model->fa
增加 1 个月?
另请注意,我知道我可以用format
来破解并制定一个丑陋的解决方案,该解决方案涉及从/解析我自己的日期/时间格式表示,但如果可能的话,我想避免这种情况。
Q1 : 是的,它必须是日期时间类型。
问2 : 您可以使用此函数向 dateTime 变量添加一个月。
function addMonth($iDate,$num = 1)
{
$date = $iDate->format('Y-n-j');
list($y, $m, $d) = explode('-', $date);
$m += $num;
while ($m > 12)
{
$m -= 12;
$y++;
}
$last_day = date('t', strtotime("$y-$m-1"));
if ($d > $last_day)
{
$d = $last_day;
}
$fDate = new DateTime();
return $fDate->setDate($y, $m, $d);
}