我有一个datepicker插件来弹出一个日历视图,允许用户选择日期+时间,但它产生的格式是:
May 9, 2016 8:30 AM
存储到数据库时,我需要格式为:
2016-09-05 08:30:00
在我的申请模型中,我有:
public function save(Request $request)
{
Entry::create($request->all());
return redirect('entries');
}
这会保存用户表单输入,但由于格式不正确,它不会保存日期时间。我尝试创建一个新函数来格式化日期,然后再将其输入数据库。
public function formatDate($data)
{
$returnDate = DateTime::createFromFormat('Y-d-m G:i:s', $data);
return $returnDate->format('Y-d-m G:i:s');
}
但是当我从save函数调用该函数时,它会显示未定义的函数。我做错了什么或者正确的方法是什么? (抱歉,我还是新人 - 谢谢你)。
答案 0 :(得分:2)
您必须为DateTime::createFromFormat()
设置正确的格式。从格式创建意味着,您必须告诉模式以匹配给定日期中的任何信息。对于您的日期,模式为:
DateTime::createFromFormat('F j, Y g:i A', $data);
以下是演示:https://eval.in/567629
答案 1 :(得分:1)
这两个功能都在模型中? 如果是这样,你打算如何调用formatDate函数?
您可以使用匿名函数,尝试:
$formatted_date = function() use ($data) {
$returnDate = DateTime::createFromFormat('Y-d-m G:i:s', $data);
return $returnDate->format('Y-d-m G:i:s');
};
在您的控制器或模型中。
答案 2 :(得分:0)
在Laravel中,created_at和updated_at被转换为Carbon对象
https://laravel.com/docs/5.2/eloquent-mutators#date-mutators
有了你的日期,你可以做同样的事情
class User extends Model
{
/**
* The attributes that should be mutated to dates.
*
* @var array
*/
protected $dates = ['created_at', 'updated_at', 'your_date'];
}
然后,在保存日期时,它将被转换为正确的格式。
尝试一下,让我们知道你是怎么过的!
答案 3 :(得分:0)
例如;
template<class T> class Point3 {
T x, y, z;
public:
Point3();
void print() const;
};
template<class T, class U> class ColPoint3 :public Point3<T> {
U color;
public:
ColPoint3();
void print() const;
};
template<class T, class U, class V> class ColVol :public ColPoint3<T, U> {
V volume;
public:
ColVol();
void print() const;
V get_volume() {
return volume;
}
};
int main() {
const int n = 2;
ColVol<double, int, int> *f;
f = new ColVol<double, int, int>[n];
for (int i = 0; i < n; i++) {
f[i];
}
int temp;
for (int k = 0; k < n; k++) {
if (f[k].get_color() >= 1 || f[k].get_color() <= 10) {
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - i + 1; j++)
if (f[j].get_volume() > f[j + 1].get_volume()) {
temp = f[j].get_volume();
f[j].get_volume() = f[j+1].get_volume();
f[j + 1].get_volume() = temp;
}
}
}
}