Estoy planeando una aplicación PHP que necesita almacenar fecha/hora en una base de datos MSSQL. (Para los curiosos, es una aplicación de calendario.) ¿Cuál es el formato preferido para almacenar esta información?¿Cuál es el formato preferido para almacenar fechas/horas en una base de datos de SQL Server cuando PHP es su idioma principal?
MSSQL tiene su propio tipo de datos datetime, que funciona bien en la base de datos y es muy legible. Sin embargo, no hay ninguna función MSSQL para traducir los valores de fecha y hora al formato preferido de PHP: indicación de fecha y hora de UNIX. Esto hace que sea un poco más doloroso de usar con PHP. La marca de tiempo de UNIX es atractiva porque eso es lo que le gusta a PHP, pero ciertamente no es tan legible y no hay muchas funciones integradas de MSSQL para trabajar con los datos.
¿Almacenaría esta información como tipo de datos datetime, como marcas de tiempo UNIX (como int, bigint o varchar datatype), como ambos formatos uno al lado del otro, o como algo completamente distinto?
PHP 5.2.0 lanzado el 2 de noviembre de 2006 (dos años antes de esta pregunta) introdujo la clase DateTime. Esto (y sus clases y derivados relacionados) es ahora cómo debería manipular las fechas y horas en PHP. Considere si su cumpleaños es antes de 1970. ¿Cómo puede almacenar eso como una marca de tiempo Unix? También debe saber que este número entero no es un número entero regular, sino que representa una marca de tiempo Unix. Usa una clase que diga lo que es. –