Question

I am creating a form to set publish interval and want to sum all of the submitted values into seconds. The form consist of fields to determine seconds, minutes, hours, day and so on.

I am collecting the submitted values to string by giving date attributes, like second, minute etc.

For example:

$second second

$minute minute

$hour hour

So if user input 1 in input field to determine the interval in day and 30 in minute, then my code will convert it to string 1 day and 30 minute.

My questions:

1- How can I convert 1 day and 30 minute string into seconds so they can be summed up into correct seconds.

I tried to use strtotime() but it returns a very large number of seconds and date() but it return too small number.

2- Is there a simple function like strtotime() and date() that can do string to second conversion correctly?

Was it helpful?

Solution

You can use strtotime() with a second parameter, like following:

strtotime('1 day 30 second', 0);

This will give you 86430, which is the number of seconds in 1 day and 30 seconds.

(If the second parameter is omitted, the current timestamp (i.e. time()) is used to add what is specified in the string, which leads to the big number.)

OTHER TIPS

Try the following code:

$day = 1;
$hour = 1;
$minute = 1;
$second = 0;
$second += (($day * 24 + $hour) * 60 + $minute) * 60;
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top