معهد دعم اتش فى اى بى اس لحلول الويب - Powered by vBulletin


 
 
النتائج 1 إلى 2 من 2

الموضوع: كود حساب اختلافات حقيقية بين اثنين من الطوابع الزمنية Calculate Real Differences Between Two Timestamps

  1. #1
    المشرف العام
    الصورة الرمزية HVIPS1


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 3
    الدولة: eygpt
    المشاركات: 2,778
    HVIPS1 غير متواجد حالياً

    Talking كود حساب اختلافات حقيقية بين اثنين من الطوابع الزمنية Calculate Real Differences Between Two Timestamps


    example usage



    strtotime examples:
    كود:
    1echo dateDiff("2010-01-26", "2004-01-26") . "n";
    2echo dateDiff("2006-04-12 12:30:00", "1987-04-12 12:30:01") . "n";
    3echo dateDiff("now", "now +2 months") . "n";
    4echo dateDiff("now", "now -6 year -2 months -10 days") . "n";
    5echo dateDiff("2009-01-26", "2004-01-26 15:38:11") . "n";



    Output:
    كود:
    16 years                                                                                                                      
    218 years, 11 months, 30 days, 23 hours, 59 minutes, 59 seconds
    32 months
    46 years, 2 months, 10 days
    54 years, 11 months, 30 days, 8 hours, 21 minutes, 49 seconds


    UNIX timestamp and precision examples

    كود:
    1echo dateDiff(time(), time()-1000000, 1) . "n";
    2echo dateDiff(time(), time()-1000000, 3) . "n";
    3echo dateDiff(time(), time()-1000000, 6) . "n";



    Output:
    كود:
    111 days
    211 days, 13 hours, 46 minutes
    311 days, 13 hours, 46 minutes, 40 seconds



    Converting text format back to UNIX timestamp example
    كود:
    1$time1 = time();
    2$time2 = $time1-10000000;
    3echo $diff = dateDiff($time1, $time2) . "n";
    4echo $time1 . "n";
    5echo strtotime(" +".$diff, $time2) . "n";





    Output:
    كود:
    13 months, 23 days, 17 hours, 46 minutes, 40 seconds
    21264514564
    31264514564

  2. #2
    المشرف العام
    الصورة الرمزية HVIPS1


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 3
    الدولة: eygpt
    المشاركات: 2,778
    HVIPS1 غير متواجد حالياً

    رد: كود حساب اختلافات حقيقية بين اثنين من الطوابع الزمنية Calculate Real Differences Between Two Timestamps


    كود:
    01// Set timezone02date_default_timezone_set("UTC");
    03 
    04// Time format is UNIX timestamp or
    05// PHP strtotime compatible strings
    06function dateDiff($time1, $time2, $precision = 6) {
    07  // If not numeric then convert texts to unix timestamps
    08  if (!is_int($time1)) {
    09    $time1 = strtotime($time1);
    10  }
    11  if (!is_int($time2)) {
    12    $time2 = strtotime($time2);
    13  }
    14 
    15  // If time1 is bigger than time2
    16  // Then swap time1 and time2
    17  if ($time1 > $time2) {
    18    $ttime = $time1;
    19    $time1 = $time2;
    20    $time2 = $ttime;
    21  }
    22 
    23  // Set up intervals and diffs arrays
    24  $intervals = array('year','month','day','hour','minute','second');
    25  $diffs = array();
    26 
    27  // Loop thru all intervals
    28  foreach ($intervals as $interval) {
    29    // Set default diff to 0
    30    $diffs[$interval] = 0;
    31    // Create temp time from time1 and interval
    32    $ttime = strtotime("+1 " . $interval, $time1);
    33    // Loop until temp time is smaller than time2
    34    while ($time2 >= $ttime) {
    35  $time1 = $ttime;
    36  $diffs[$interval]++;
    37  // Create new temp time from time1 and interval
    38  $ttime = strtotime("+1 " . $interval, $time1);
    39    }
    40  }
    41 
    42  $count = 0;
    43  $times = array();
    44  // Loop thru all diffs
    45  foreach ($diffs as $interval => $value) {
    46    // Break if we have needed precission
    47    if ($count >= $precision) {
    48  break;
    49    }
    50    // Add value and interval 
    51    // if value is bigger than 0
    52    if ($value > 0) {
    53  // Add s if value is not 1
    54  if ($value != 1) {
    55    $interval .= "s";
    56  }
    57  // Add value and interval to times array
    58  $times[] = $value . " " . $interval;
    59  $count++;
    60    }
    61  }
    62 
    63  // Return string with times
    64  return implode(", ", $times);
    65}

 

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •