Jump to content

timestamp based on name


sandy1028

Recommended Posts

Hi,

 

In the code below when status changes from 0 to 1 the difference is calculated.

 

When status is 0 the difference of timestamp is not calculated.

Please tell me how to do it.

i.e,

 

In one row I want the difference like $tdiff = 2008-06-13 00:30:00-2008-06-13 00:10:00

 

<?php
$values=array(
   "0#2008-06-13 00:10:00#master",
   "0#2008-06-13 00:20:00#master",
   "0#2008-06-13 00:30:00#master",
   "1#2008-06-13 00:40:00#stud",
   "0#2008-06-13 00:50:00#stud",
   "1#2008-06-13 01:10:00#stud"
   );

$i=0;
$outset = array();
$status = array();
$aset   = 0;

foreach($values as $v) //For each element in the values array
  {
  // Split the value by hash
  $vals = explode('#', $v);
  // If this is the first loop, set the previous status
  if($i == 0) {$previous_value = $vals[0]; $i=1; $starttime = $vals[1];}
// If the previous =0 and the current is 1, store the values in a new array for output
  if($previous_value == 0 && $vals[0] == 1)
    {
    $aset             = 1;
    $tdiff             = date('h:i:s', strtotime($vals[1]) - strtotime($starttime));
    $outset[]          = $starttime.' '.$vals[1].' '.$tdiff.' '.$vals[2];
    }

  if($vals[0] == 0 && $previous_value == 1)
    {
    $starttime         = $vals[1];
    }

  // Store the current, for the next loop it is previous value
  $previous_value     = $vals[0];
  $lasttime           = $vals[1];
  }

if($aset == 0)
  {
    $tdiff             = strtotime($vals[1])-strtotime($starttime);
    $outset[]          = $starttime.' '.$lasttime.' '.$tdiff.' '.$vals[2];
  }

echo"<pre>";
print_r($outset);
echo"</pre>";

 

Link to comment
https://forums.phpfreaks.com/topic/112144-timestamp-based-on-name/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.