在我的应用程序中,我有一些记录,我需要根据一些时间参数进行过滤.要进行日期比较,我需要将记录中的日期(格式为YYYY-MM-DD的字符串)转换为unix时间戳(自1970年以来的秒数).由于我有成千上万的记录,我真的想找到最有效的方法.
回答另一个问题提示做它在数据库中(不是一个不错的选择,遗憾的是),使用strtotime()
或strptime()
,但这些不觉得最喜欢的内存和时间,有效的方法,你知道吗?
鉴于我知道输入的确切格式,可能会使用某种形式的字符串操作(substr
,或explode
)结合mktime
更好?
如果你认为我的优化还不成熟,那么只是幽默我好吗?
为什么你认为strtotime()不是一个有效的函数?你做过任何基准测试吗?请记住,strtotime()是一个内置的库函数,它将直接用C语言编写,而你出现的任何东西都将通过php解释器运行.
还要记住,日期计算本质上很棘手,对闰年和时区等问题也是如此.
至于另一种更快的方法,我认为使用substr()进行解析将比正则表达式更快.将结果输入mktime()并进行设置.