質問

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?

役に立ちましたか?

解決

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.)

他のヒント

Try the following code:

$day = 1;
$hour = 1;
$minute = 1;
$second = 0;
$second += (($day * 24 + $hour) * 60 + $minute) * 60;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top