Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 240
  • Last Modified:

Charges / Billing

Price: 0.09

I need to charge 0.09 for every 30 seconds.

Say total time are 37 seconds. The charges are 0.18

If it's 1-30 seconds, the charge is 0.09

Basically, every 30 seconds, I am supposed to charge 0.09

How do I translate this into PHP code?
0
rolandmy
Asked:
rolandmy
  • 2
  • 2
2 Solutions
 
rolandmyAuthor Commented:
I kind of like found a way to do it. Refer to below. Is there a better way of doing it? I kind of feel like I am using the long way to go about it =/

 if ($billing=='xx') {
      $price='0.07';
  }else{
        $price='0.09';
  }
 
  $charge = $durationtime/30;
 
  if ( preg_match("/\./", $charge) ) {
        $actualcharge = intval($charge) + 1;
        }else{
              $actualcharge = intval($charge) + 0;
              }
0
 
Chris StanyonCommented:
Use the ceil() function to get your 'multiplier', and then simply do the math:

$charge = 0.09;
$seconds = 39;
$total = ceil($sec/30) * $charge;

echo $total

Open in new window

and don't put quotes around your values - they then become strings!
0
 
Ray PaseurCommented:
Here is how to handle DATETIME information in PHP and MySQL.
http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_201-Handling-date-and-time-in-PHP-and-MySQL.html

To determine an elapsed time in seconds, create timestamps and subtract.  To determine 30 second intervals or parts of 30 second intervals, use ceil() after dividing the number of seconds by 30.
0
 
Chris StanyonCommented:
Variable mis-match in my previous code:

$charge = 0.09;
$seconds = 39;
$total = ceil($seconds/30) * $charge;

echo $total;

Open in new window

0
 
Ray PaseurCommented:
This seems to test out OK.
http://www.laprbass.com/RAY_temp_rolandmy.php

<?php // RAY_temp_rolandmy.php
error_reporting(E_ALL);
date_default_timezone_set('America/Chicago');

// THE RATE PER PERIOD
$rate = 0.09;

// THE DURATION OF THE PERIOD IN SECONDS
$dura = 30;

// THE ELAPSED TIME PERIOD OF SERVICE
$alpha = 'Today 11:58:03 pm';
$omega = 'Tomorrow 00:00:17';

// CREATE TIMESTAMPS AND GET SECONDS
$a_ts = strtotime($alpha);
$z_ts = strtotime($omega);
$secs  = $z_ts - $a_ts;

// COMPUTE CHARGES
$bill = ceil($secs/$dura) * $rate;

// REPORT THE WORK
echo "FROM $alpha TO $omega THERE ARE $secs SECONDS AND THE CHARGE IS " . '$' . number_format($bill,2);

Open in new window

Best regards, ~Ray
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now