Emad Saif نشر 27 مارس 2022 أرسل تقرير نشر 27 مارس 2022 لدي متغيرين يحمل كلًا منهما تاربخ معين (في شكل نص string): $date1 = '2022-03-25 14:21:36'; $date2 = '2022-03-26 10:15:48'; كيف أحسب عدد الدقائق (أو الثواني) بين المتغيرين في PHP؟ 2 اقتباس
1 سمير عبود نشر 27 مارس 2022 أرسل تقرير نشر 27 مارس 2022 تقوم بتحويل المُتغيرين من سلاسل نصية إلى كائنات DateTime ثم تستخدم التابع diff لحساب الفرق: <?php // Enter your code here, enjoy! $date1 = '2022-03-25 14:21:36'; $date2 = '2022-03-26 10:15:48'; $start_date = new DateTime($date1); $since_start = $start_date->diff(new DateTime($date2)); سيكون الناتج عبارة عن كائن من الصنف DateInterval من خلاله تستطيع الوصول لعدة خاصيات تُساعدك في تحويل الفرق إلى دقائق أو ساعات أو ثواني ... <?php $date1 = '2022-03-25 14:21:36'; $date2 = '2022-03-26 10:15:48'; $start_date = new DateTime($date1); $since_start = $start_date->diff(new DateTime($date2)); echo $since_start->days.' days total<br>'; echo $since_start->y.' years<br>'; echo $since_start->h.' hours<br>'; echo $since_start->i.' minutes<br>'; echo $since_start->s.' seconds<br>'; سيكون الخرج: 0 days total 0 years 19 hours 54 minutes 12 seconds لحساب الفرق بالدقائق فقط نُحول ناتج الأيام إلى دقائق و نُضيف له ناتج تحويل الساعات إلى دقائق و نضيف له الدقائق كما يلي: <?php $date1 = '2022-03-25 14:21:36'; $date2 = '2022-03-26 10:15:48'; $start_date = new DateTime($date1); $since_start = $start_date->diff(new DateTime($date2)); $minutes = $since_start->days * 24 * 60; $minutes += $since_start->h * 60; $minutes += $since_start->i; echo $minutes.' minutes'; // 1194 minutes أما إن كنت تستخدم مكتبة Carbon فهي تُوفر عدة توابع للتعامل مع التواريخ و الوقت من بينها حساب الفرق بأي وحدة ترغب: <?php $date1 = '2022-03-25 14:21:36'; $date2 = '2022-03-26 10:15:48'; $startTime = \Carbon\Carbon::parse($date1); $finishTime = \Carbon\Carbon::parse($date2); echo $finishTime->diffInHours($startTime) . "<br>"; // 19 echo $finishTime->diffInMinutes($startTime) . "<br>"; // 1194 echo $finishTime->diffInSeconds($startTime) . "<br>"; // 71652 echo $finishTime->diffInSeconds($startTime) . "<br>"; // 71652 $finishTime->diffForHumans($startTime); // 19 hours after $startTime->diffForHumans($finishTime); // 19 hours before \Carbon\Carbon::setLocale('ar'); $startTime->diffForHumans($finishTime); // قبل 19 ساعة 2 اقتباس
1 Adnane Kadri نشر 28 مارس 2022 أرسل تقرير نشر 28 مارس 2022 يمكنك استعمال أحد توابع الكائن DateTime في PHP لعمل الفكرة، يجب أولا تمرير التاريخين الى الباني كالتالي: $first_date = new DateTime('2022-03-25 14:21:36'); $second_date = new DateTime('2022-03-26 10:15:48'); ثم سيمكن عن طريق التابع diff استخلاص الفرق بين التاريخين كالتالي: $difference = $first_date->diff($second_date); سيبدوا خرج النتيجة كائن DateInterval يبدوا كالتالي: object(DateInterval) public 'y' => int 0 public 'm' => int 0 public 'd' => int 20 public 'h' => int 6 public 'i' => int 56 public 's' => int 30 public 'invert' => int 0 public 'days' => int 20 واستخلاص الدقيقة من الخرج بشكل بسيط عن طريق قراءة الخاصية i: echo $difference->i; في حالة تجاوز الفرق لدقائق ستحتاج تحويل الساعات او الثواني او الايام الى دقائق هي الأخرى لحسابها ضمن الفرق. تعرف أكثر عن التعامل مع الوقت والتاريخ في PHP. 2 اقتباس
السؤال
Emad Saif
لدي متغيرين يحمل كلًا منهما تاربخ معين (في شكل نص string):
كيف أحسب عدد الدقائق (أو الثواني) بين المتغيرين في PHP؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.