Je suis aller chercher un datetime de MYSQL qui ressemble à:Arrondir un datetime MYSQL premier intervalle de 15 minutes en millisecondes (PHP)
2010-08-11 11:18:28
J'ai besoin de convertissez-le en "floor" ou au premier intervalle de 15 minutes et affichez en millisecondes une autre fonction.
Donc, ce cas serait:
2010-08-11 11:15:00 en millisecondes
Whoops! Désolé - besoin de clarifier - J'ai besoin de code qui va le transformer en millisecondes WITHIN php!
Faire un test de synchronisation révélé ce qui suit:
$time_start = microtime(true);
for($i=0;$i<10000;$i++)
floor(strtotime('2010-08-11 23:59:59')/(60*15))*60*15*1000;
$time_end = microtime(true);
echo 'time taken = '.($time_end - $time_start);
temps pris = 21,440743207932
$time_start = microtime(true);
for($i=0;$i<10000;$i++)
strtotime('2010-08-11 23:59:59')-(strtotime('2010-08-11 23:59:59') % 900);
$time_end = microtime(true);
echo 'time taken = '.($time_end - $time_start);
temps pris = 39,597450017929
$time_start = microtime(true);
for($i=0;$i<10000;$i++)
bcmul((strtotime('2010-08-11 23:59:59')-(strtotime('2010-08-11 23:59:59') % 900)), 1000);
$time_end = microtime(true);
echo 'time taken = '.($time_end - $time_start);
temps pris = 42,297260046005
$time_start = microtime(true);
for($i=0;$i<10000;$i++)
floor(strtotime('2010-08-11 23:59:59')/(900))*900000;
$time_end = microtime(true);
echo 'time taken = '.($time_end - $time_start);
temps pris = 20,687357902527
temps pris = 19,32729101181
temps pris = 19,938629150391
Il semble que la fonction strtotime() soit lente et nous devrions probablement éviter de l'utiliser doublement à chaque fois que cela est nécessaire. ! Le timeTaken (60 * 15) = timeTaken (900) était un peu une surprise ...
Hi! Cela semble rad pour mysql, y at-il une manière intelligente de faire la même chose en php? – DrMHC
Bien sûr, voir mon édition. – wimvds