رضا
3 سال پیش توسط رضا مطرح شد
4 پاسخ

مشکل زمان در تابع Jdate

سلام دوستان
من در حال تمرین روی کد ساده php هستم در استفاده از تابع jdate به مشکل برخوردم (آخرین نسخه از سایت خودش دانلود شده)
زمان رو به صورت کامل در دیتابیس ذخیره کردم (فرمت دیتابیس تایم استمپ)
بعد اومدم یه حلقه درست کردم که دیتابیس رو بخونه برام و زمان های هر ردیف رو چاپ کنه

مشکل :
وقتی ردیف ها رو میخونه زمان اولین ردیف رو درست نشون نمیده! 2 ساعت اینور اونور ولی ردیف های بعدی رو درست نشون میده
(در داخل دیتابیس مشکلی نیست و مشکل مربوط به موقعیت زمانی هم نیست چک شده)
اومدم مشکل رو پییدا کنم گفتم تاریخ رو با jdate و زمان رو با date نشون میدم ولی دیدم مشکل همچنان هست(یعنی خود تابع date هم اشتباه نشون میده)!!!! اومدم یه روش دیگه تست کردم اینبار ابتدا زمان رو با date لود کردم بعد تاریخ رو jdate (یعنی تابع jdate رو بعد از تابع date استفاده کردم) اینطوری مشکل تابع date رفع شد
اما من مجبورم که تابع jdate رو همیشه در اخر استفاده کنم و همچنین مجبورم برای زمان حتما از date استفاده کنم
یه کد ساده تر که همین مشکل رو داره اینجا میزارم کافیه جاهای تابع هارو عوض کنید مشکل رفع بشه

<?php
require_once('jdf.php') ;
    $QrowDate = strtotime("2022-04-05 12:00:00");
    $Date1 =jdate("Y-n-j G:i" ,"$QrowDate" , "", "GMT");
    $Date2 =date("Y-n-j G:i", " $QrowDate" );
?>
    <p><?php echo $Date1 ?></p>
    <p><?php echo $Date2 ?></p>

ثبت پرسش جدید
میلاد خسروی
تخصص : برنامه نویس بامزه
@milwad 3 سال پیش مطرح شد
0

سلام خسته نباشید
الان مشکل حل شده یا نه؟


رضا
تخصص : برنامه نویس
@Reza Hs 3 سال پیش آپدیت شد
0

نه
چون اینطوری نمیشه ازش استفاده کرد (من فقط مشکل رو تا حدودی شناسایی کردم)
میخوام بدونم مشکل چیه که ریشه ای حل بشه اصلا چرا باید اینطوری باشه؟! چه عواملی دخیل هست


میلاد خسروی
تخصص : برنامه نویس بامزه
@milwad 3 سال پیش مطرح شد
0

ببین همیشه منو تگ کن بدونم جواب دادی شانسی دیدم اینو
ببین برای مثال از یه پکیج دیه مثل verta استفاده کن ببین درست میشه نشد بهم بگو


محسن نصر
@mohsen35 2 سال پیش مطرح شد
0

سلام. مشکل از تابع strtotime هست. همونطور که تو سایت خود php گفته شده، timezone رو در نظر نمیگیره. پس چی کار کنیم؟ یه تابع مثل زیر تعریف کنید و ازش استفاده کنید.

function string2timestamp($datetime){
    $dtime = DateTime::createFromFormat("Y-m-d H:i:s", $datetime, new DateTimeZone('Asia/Tehran'));
    $timestamp = $dtime->getTimestamp();
    return $timestamp;
}

حله؟


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام