سلام دوستان
من در حال تمرین روی کد ساده 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>
نه
چون اینطوری نمیشه ازش استفاده کرد (من فقط مشکل رو تا حدودی شناسایی کردم)
میخوام بدونم مشکل چیه که ریشه ای حل بشه اصلا چرا باید اینطوری باشه؟! چه عواملی دخیل هست
ببین همیشه منو تگ کن بدونم جواب دادی شانسی دیدم اینو
ببین برای مثال از یه پکیج دیه مثل verta استفاده کن ببین درست میشه نشد بهم بگو
سلام. مشکل از تابع 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;
}
حله؟
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟