我使用 Yii Wheels Date Picker 来选择日期,我尝试通过 Yii ActiveRecord 将日期保存到数据库,它工作得很好。现在我想存储 Unix 时间戳而不是日期本身。我已经尝试了从 PHP Date 类到 strtotime 的所有建议,但没有成功。 Yii 的 CDateTimeParser::parse 也不起作用。插入的日期始终是 unix 纪元,因此我知道我的转换不起作用。我的日期格式为 1972-03-02
我已经没有想法了。
这是我的代码:
protected function beforeSave()
{
if(parent::beforeSave())
{
//change date to Unix time stamp
$this->ccalstartdate = CDateTimeParser::parse($this->ccalstartdate, 'yyyy-MM-dd');
$this->ccalenddate = CDateTimeParser::parse($this->ccalenddate, 'yyyy-MM-dd');
}
return parent::beforeSave();
}
编辑 在调试器中运行后,我可以看到转换正确,但值未正确保存到数据库中。所以还有其他原因。在调用 AR save 之前,属性都是正确的。所以我猜这个方法根本不是原因。
最佳答案
我打错了仗。上面的代码工作得很好。问题是我在 View 小部件中使用 zii.widgets.CDetailView
来检查值。小部件正在转换内容,并且在失败时(正在使用其内部格式)它打印了错误的数字。我检查了数据库值,它们被正确存储为 unix 时间戳。
感谢所有试图提供帮助的人。下次一定要小心一点!
关于php - 日期到 Unix 时间 : Why don't this work?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22416884/