Quiero preguntar cómo convertir la cantidad de días desde 0000-00-00 hasta la fecha en Linux.
(Nota: vi desdeconvertidor de épocaque se pueda convertir. Por ejemplo, 737887 se convierte al 7 de abril de 2020, es decir, hay 737887 días entre 0000-00-00 y hoy (martes 07 de abril de 2020).)
Respuesta1
En muchos sistemas, es mejor trabajar con días desde la época (1970-01-01).
Por lo tanto, puede mantener un número constante de días entre 0000-00-00 y 1970-01-01, que es exactamente 719528. Luego, resúmalo con los días transcurridos desde la época:
echo $(( 719528 + $(date --utc --date "$1" +%s)/86400 ))
Respuesta2
El módulo Perl DateTime es bueno para esto:
$ perl -MDateTime -E '
$base = DateTime->new(year=>0, month=>1, day=>1);
$now = DateTime->now;
say $now->delta_days($base)->in_units("days");
'
737887