بهترین راه درج NOW در MySQL با کمک PHP
یکی از مشکلات بزرگ در کدنویسی به زبان PHP، درج زمان کنونی در دیتابیس MySQL است. اگر شما در دیتابیس فیلدی داشته باشید که بخواهید در آن زمان درج رکورد را ثبت کنید، دو راه پیش رو دارید:
۱- نوع فیلد را timestamp قرار دهید و سپس defualt value مربوط به آن را روی CURRENT_TIMESTAMP تنظیم کنید.
مشکل این روش: این روش متأسفانه timezone مربوط به سرور را ملاک قرار میدهد و زمان را مثلاً به ساعت تهران در دیتابیس درج میکند. در حالی که ما در برنامهنویسی باید حتماً تمام زمانها را بر مبنای لندن (یعنی UTC) درج کنیم.
۲- نوع فیلد را datetime قرار دهید وهنگام درج در دیتابیس به جای مقدار این فیلد از تابع NOW() استفاده کنید.
مشکل این روش: این روش نیز متأسفانه همان مشکل بالا را دارد و زمان را بر اساس UTC درج نمیکند.
راه حل:
شما نوع فیلد را روی datetime یا همان timestamp قرار دهید و حتی اگر خواستید همان CURRENT_TIMESTAMP را هم به عنوان مقدار پیشفرض انتخاب کنید، اما در PHP هنگام درج در دیتابیس، خودتان لحظه فعلی را به UTC بهدست آورید و به جای NOW از آن استفاده کنید.
به مثال زیر دقت کنید:
به متغیر now و نحوهی استفاده از آن هنگام درج دقت کنید...
با این روش، قطعاً مطمئن هستید که زمان فعلی به UTC در دیتابیس درج میشود. (تابع gmdate زمان را به GMT برمیگرداند و شما آنرا در دیتابیس درج میکنید)
موفق باشید؛
حمید رضا نیرومند
.
- مطالب مرتبط:
- چگونه گزینه های انتخاب شده یک CheckBox را با کمک inputهای hidden به صفحه سوم منتقل کنیم؟
- در آمدی بر زبان PHP
- نوشتن بر روی عکس با GD در PHP
- آموزش نمایش تاریخ هجری شمسی با استفاده از PHP در صفحات وب
- نکاتی در مورد کار با URL در پی.اچ.پی (Working with addresses in PHP)
- چگونه با PHP از اطلاعات دیتابیس خروجی csv بگیریم که کاراکترها درست نمایش داده شوند؟
- ------------
- چطور در وبسایت یا وبلاگ خود یک موتور جستجوی مبتنی بر گوگل داشته باشیم؟
- آموزش چک کردن آزاد بودن یا نبودن یک دامنه با PHP (و زبانهای دیگر)
- یکی از بهترین و سریعترین راههای رتوش کردن عکس در فتوشاپ (Retouch in Photoshop)
- چرا و چگونه سایتمان را در دایركتوری dmoz ثبت کنیم؟
- بهترین روش ترکیب چند شرط اختیاری در WHERE در MySQL مبتنی بر PHP
ارسال سؤال یا نظر
1- SHAPARAKPAY:
بوسیله: shaparakpay, در: Wednesday, 2016 July 20-کد: 14625
ممنون استفاده کردیم