Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 什么是「;“正确”;处理数据库日期/时间转换的方法?_Php_Database_Date - Fatal编程技术网

Php 什么是「;“正确”;处理数据库日期/时间转换的方法?

Php 什么是「;“正确”;处理数据库日期/时间转换的方法?,php,database,date,Php,Database,Date,我有一个PHP站点,可以从用户那里以人类的形式获取日期(例如2012-10-18或类似的版本),并将其存储在数据库中。在数据库中,它们存储为unix时间戳。我可以使用PHP函数进行转换,只存储/检索时间戳,也可以使用SQL/数据库函数在查询中进行转换,并存储/检索格式化日期。 有没有理由选择一种方法而不是另一种?其中一个更“正确”(分离关注点等)吗?在数据库中使用日期。数据库能够使用偶数进行计算,因此没有理由在PHP脚本中进行此类处理。如果您不想这样做,一个有效的参数可能是因为您的查询由于其中的

我有一个PHP站点,可以从用户那里以人类的形式获取日期(例如2012-10-18或类似的版本),并将其存储在数据库中。在数据库中,它们存储为unix时间戳。我可以使用PHP函数进行转换,只存储/检索时间戳,也可以使用SQL/数据库函数在查询中进行转换,并存储/检索格式化日期。

有没有理由选择一种方法而不是另一种?其中一个更“正确”(分离关注点等)吗?

在数据库中使用日期。数据库能够使用偶数进行计算,因此没有理由在PHP脚本中进行此类处理。如果您不想这样做,一个有效的参数可能是因为您的查询由于其中的逻辑变得有点复杂。

IMHO这两种方法在性能方面没有区别,但使用PHP转换/格式化sql日期具有代码更简洁和本地化能力的优势。

我发现在sql中处理用户时区很复杂(至少在SQLite中,不确定其他数据库在日期函数中是否有更好的时区支持),因此,PHP似乎是更好的处理方法。

我个人将依赖于数据库函数转换,它速度更快,并且在脚本中产生的开销更少。