تعيين قاعدة البيانات الافتراضي DateFormat ISO 8601 مع المناطق الزمنية في Laravel
سؤال
أعتقد أن العنوان يقول:أريد أن استخدام ISO 8601 مع المناطق الزمنية الافتراضية التاريخ والوقت الشكل في Laravels بليغة.حصلت على هذا
class mEloquent extends Eloquent {
protected function getDateFormat()
{
return 'YYYY-MM-DDThh:mm:ss.sTZD';
}
}
جميع نماذج تمديد mEloquent.ولكن كيف يمكنني بناء الجداول ؟ فقط
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class CreateUsersTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function(Blueprint $table)
{
$table->increments('id');
$table->string('firstName');
$table->string('lastName');
$table->string('email')->unique();
$table->string('password');
$table->timestamps();
});
} ......
طبيعي ؟ كيف يمكن مقارنة هذا dateformat?أو يجب فقط استخدام الافتراضي وحفظ التوقيت بشكل منفصل ؟
المحلول
فإنه من السهل حقا إذا كنت تتبع الوثائق.
PHP date
يدعم وظيفة ISO 8601 منذ PHP5 و يمكننا الحصول عليه عن طريق تمرير 'c'
شكل الحرف.
http://php.net/manual/en/function.date.php
Laravel نموذج تحويل التاريخ سمات Carbon
الكائنات.الكربون يمتد DateTime
التي لديها format
وظيفة يدعم كل من date
تنسيق الأحرف.
يمكنك بسهولة إنشاء أسلوب استرجاع القيمة (أو حتى مخصص جديد سمة) إلى تغيير موعد السمة.ثم استخدام الكربون format
طريقة تغيير ISO 8601 تنسيق.
حتى في laravel نموذج ، يمكننا أن نفعل شيئا مثل هذا:
public function getPublishedAt8601Attribute()
{
return $this->published_at->format('c');
}
ثم يمكننا الوصول إلى السمة مثل هذا:
// Prints something like: 2016-10-13T21:48:00+03:00
echo $post->published_at_8601;
نصائح أخرى
كما هو مذكور في المستندات، أضف هذا إلى الفئة الأساسية "miloquent"
giveacodicetagpre.يمكنك أيضا التحقق من تسلسل التاريخ: التسلسل
الإخراج
2018-04-14T18: 35: 58 + 00: 00