Tuesday, May 21, 2013
   
Text Size
Login

Preg_Replace all strings between two tags

What?
For those of you who use Preg_Replace. Preg_replace is a function that uses regular expressions to search and replace a string.

Why?
Because my understanding with regular expressions is shady and varies from language to language, I've written this article as a quick reference point.

How?

Php convert filesizes to bytes kb mb gb

What?
Just a quick note on how to format a given filesize and to reduce the display output to a small string, eg:

  1.  196 bytes          : displays as => "196 bytes" 
  2.     12945 bytes        : displays as => "12 Kb" 
  3.     1478515 bytes      : displays as => "1 Mb" 
  4.     8798745455 bytes   : displays as => "8 Gb" 

Convert seconds to total time in PHP

What?
This is intended for activity/session durations and although I usually get MySQL to do the date/time calculations, there are times when we have to do with PHP. This is the shortest way I know to properly convert seconds into total hours, minutes and seconds (taking into account regional settings and without using a date function).

How?

  1.  $total_time =intval(intval($total_seconds)/ 3600).":"; 
  2.  $total_time.=str_pad(intval(($total_seconds/60)%60),2,"0",STR_PAD_LEFT).":"; 
  3.  $total_time.=str_pad(intval($total_seconds%60),2,"0",STR_PAD_LEFT); 
  4.   
  5.  // yields 
  6.  // 82800  = 23:00:00 
  7.  // 108000 = 30:00:00 
On one line:

  1.  $total_time=intval(intval($total_seconds)/ 3600).":".str_pad(intval(($total_seconds/60)%60),2,"0",STR_PAD_LEFT).":".str_pad(intval($total_seconds%60),2,"0",STR_PAD_LEFT); 

First and Last Entry on a Page using Modulus Remainder

So I know it's quite a long title but I'm not sure what I'll be searching next time. It has taken me a lot longer than I thought it would mostly out of frustration and the inability to know exactly what I'm looking for... always difficult. After a cup of tea the solution was glaringly obvious, just do a primary school mathematics table and it all makes sense (see my 10 mod table below).

This article is a quick note (so I never spend as long again) in PHP on how to determine when looping through a loop, which entry was first and which was last. This is incredibly useful for pagination.

Difference between two dates - the midnight hour

I might already have something similar to this but this deserves its own article. Why? Well try to search the web for a PHP/MySQL solution which suggests on how to count the hours between two times on the same date, when one of the hours is on the other side of the midnight hour...

Now bear in mind the below is in European date format

Consider the following:

  1.  Date       Customer        Time From       Time To          Hours 
  2.  ---------- --------------- --------------- ---------------- -------------- 
  3.  04/03/2011 Tweedle Dee     10:00           12:00            2.00 
  4.  08/03/2011 Tweedle Dum     23:30           00:30            -23.00 
Note the last row is obviously incorrect. This is because the script is not changing the date at the stroke of midnight. Take the last row as an example, the equation that's happening is:

  1.  $thisDateSQL=date("Y-m-d", strtotime($sub_row['DateSession'])); 
  2.   
  3.  $this_time_from1 = date("H:i", strtotime($sub_row['TimeFromSession'])); 
  4.  $this_time_to1 = date("H:i", strtotime($sub_row['TimeToSession'])); 
  5.   
  6.  $this_time_from_sql=$thisDateSQL." ".$this_time_from1.":00"; 
  7.  $this_time_to_sql=$thisDateSQL." ".$this_time_to1.":00"; 
  8.   
  9.  $sum_hours = number_format(((strtotime($this_time_from_sql)-strtotime($this_time_from_sql))/60)/60, 2); 
  10.   
  11.  // Using the examples above this is doing the following: 
  12.  2011-03-04 12:00:00 - 2011-03-04 10:00:00 = 2.00 
  13.  2011-03-08 00:30:00 - 2011-03-08 23:30:00 = -23.00 
This is great for everything during that date as long as the "To Date" never goes past midnight into the next day... But what system doesn't do this (no Microsoft jokes please)?

Latest Posts

  • Joes Revolver Map (JRM)

    • Fri 17-May-13
      Hmmm... Sounds like a problem with the identifier. Was it working before and has there been a change ...
      Joel Lipman  
    • Fri 17-May-13
      Hello Joel: Yes, I do have it published on all pages of the site. I just went back to Revolver maps to ...
      Bill Duncan  
    • Fri 17-May-13
      Hi Bill, From the developers of RevolverMaps, "the module would need to be published on every page ...
      Joel Lipman  
    • Fri 17-May-13
      Hi Bill, I'll investigate further as you're not the first to say this happens. In the meantime, simply ...
      Joel Lipman  
    • Fri 17-May-13
      Its a great extension. But when I set it up I only show my presence on the 3D map and no other visitors ...
      Bill Duncan