Tengo un problema extraño con PHP y un script en C que usa la hora actual. Mi programa es un poco más compleja, pero el problema se estrecha en sí a esto:Ejecutando el código C con mktime dentro del ejecutivo de PHP
tengo este código C que imprime atrás la fecha de 1 minuto, la fecha actual y la fecha de 1 minuto de ahora:
#include <time.h>
#include <stdio.h>
int main(int argc, char **argv){
char date[9];
time_t rawtime;
struct tm * ptm;
int i;
time(&rawtime);
ptm = gmtime(&rawtime);
ptm->tm_min--;
for(i = 0; i < 3; i++){
rawtime = mktime(ptm);
ptm = gmtime(&rawtime);
snprintf(date, 9, "%d %d %d", ptm->tm_mday, ptm->tm_hour, ptm->tm_min);
printf("%s\n", date);
ptm->tm_min++;
}
return 0;
}
cuando ejecuto esto en la cáscara, consigo resultados correctos (el formato de impresión es día del mes, hora, minuto):
$ ./test
17 20 7
17 20 8
17 20 9
Sin embargo, cuando ejecuto a través de PHP que obtener resultados extraños. Este es el código PHP:
<?php
exec("path_to_exec/test", $output);
echo "$output[0]<br/>";
echo "$output[1]<br/>";
echo "$output[2]<br/>";
?>
Y esta es la salida:
17 20 7
17 17 8
17 14 9
el horario es claramente erróneo. Alguien tiene alguna idea de lo que podría estar causando esto?
¿Qué se obtiene cuando se 'var_dump ($ salida)'? – jprofitt
@jprofitt 'matriz (3) {[0] => cadena (8)" 17 17 40 "[1] => cadena (8)" 17 14 41 "[2] => cadena (8)" 17 11 42 "}' – nmat
¿Alguna razón en particular por la que desea usar C para obtener información de fecha? ¿Qué pasa con las funciones de fecha incorporadas de PHP? – NullUserException