Php 什么是「;“正确”;处理数据库日期/时间转换的方法?
我有一个PHP站点,可以从用户那里以人类的形式获取日期(例如2012-10-18或类似的版本),并将其存储在数据库中。在数据库中,它们存储为unix时间戳。我可以使用PHP函数进行转换,只存储/检索时间戳,也可以使用SQL/数据库函数在查询中进行转换,并存储/检索格式化日期。Php 什么是「;“正确”;处理数据库日期/时间转换的方法?,php,database,date,Php,Database,Date,我有一个PHP站点,可以从用户那里以人类的形式获取日期(例如2012-10-18或类似的版本),并将其存储在数据库中。在数据库中,它们存储为unix时间戳。我可以使用PHP函数进行转换,只存储/检索时间戳,也可以使用SQL/数据库函数在查询中进行转换,并存储/检索格式化日期。 有没有理由选择一种方法而不是另一种?其中一个更“正确”(分离关注点等)吗?在数据库中使用日期。数据库能够使用偶数进行计算,因此没有理由在PHP脚本中进行此类处理。如果您不想这样做,一个有效的参数可能是因为您的查询由于其中的
有没有理由选择一种方法而不是另一种?其中一个更“正确”(分离关注点等)吗?在数据库中使用日期。数据库能够使用偶数进行计算,因此没有理由在PHP脚本中进行此类处理。如果您不想这样做,一个有效的参数可能是因为您的查询由于其中的逻辑变得有点复杂。IMHO这两种方法在性能方面没有区别,但使用PHP转换/格式化sql日期具有代码更简洁和本地化能力的优势。我发现在sql中处理用户时区很复杂(至少在SQLite中,不确定其他数据库在日期函数中是否有更好的时区支持),因此,PHP似乎是更好的处理方法。我个人将依赖于数据库函数转换,它速度更快,并且在脚本中产生的开销更少。