Mire strtotime
, strptime
o la clase DateTime
.
strtotime
Ejemplo:
$timestamp = strtotime('1/1/2011');
Cada función tiene su advertencia. Por ejemplo, la documentación para strtotime
estados que:
fechas en el m/D/A o dmy formatos se desambiguado mirando el separador entre los diversos componentes: si el separador es un barra (/), entonces el m/d/y americano es asumido; mientras que si el separador es un guión (-) o un punto (.), entonces se asume el formato d-m-y europeo .
También es posible usar preg_match
para capturar las 3 partes y crear su propia marca de tiempo usando mktime
.
preg_match
Ejemplo:
if (preg_match('/^(?P<day>\d+)[-\/](?P<month>\d+)[-\/](?P<year>\d+)$/', '1/1/2011', $matches))
{
$timestamp = mktime(0, 0, 0, ($matches['month'] - 1), $matches['day'], $matches['year']);
}
su expresión regular supone el formato dd-mm-yyyy, que no estoy seguro de que sea. – StackOverflowNewbie
@StackOverflowNewbie - Su pregunta dijo: "Tenga en cuenta que en la mayoría de los casos, esto tendrá el formato de dd mm aaaa con varios delimitadores". así que fui con ese formato, pero podrías agregar sentencias 'elseif' al original que verifica los diferentes formatos y hacer el' regex' más específico (es decir, en lugar de \ d + usa un patrón que describe 0-12 para el mes y 0 -31 por los días). Por supuesto, en el caso de 1/2/13, es imposible saber cuál es, a menos que sepa el formato. –