Home > Enterprise >  PHP | String to Int conversion goes wrong
PHP | String to Int conversion goes wrong

Time:01-08

Hello my dear coding friends. I have a time, formatted like this 08:00:00. That time comes from my phpMyAdmin database where i have a "time" field and i get that field by using a query in my php code. The variable type of that mysqli variable containing the time is string, so i want to cut the minutes and seconds part off and turn the rest into an integer by adding (int). The code looks like this: Image of code

if (strpos ($meetings["dtStartZeit"], "0") == 0) {
                            
    $startTimeString = substr ($meetings["dtStartZeit"], 1, 1);
                            
} else {
                        
    $startTimeString = substr ($meetings["dtStartZeit"], 0, 2);
                            
}
                        
$startTimeNumber = (int)$startTimeString;

Now comes the confusing part. If i have a string like this --> "8" and I want to turn it into an integer by using the above mentioned function, the result is 9 and not 8. The even more confusing part is that if I increase the value of that variable by 1, the result is 8.

Can someone explain me this please?

CodePudding user response:

You don't need to use strpos or substr here. Use a single line type cast instead all of your code:

$startTimeNumber = (int) $meetings['dtStartZeit']; // "08:00:00" --> 8 

CodePudding user response:

To convert a string to an int you use intval()

because a string is an object of chars casting them wont ever work which is what (int) is doing

  •  Tags:  
  • php
  • Related