【发布时间】:2023-03-04 04:31:01
【问题描述】:
我有一个 mysql 表,它依赖于相当于条目日期的 unix 纪元时间戳在网站的各个部分进行排序和过滤。我正在尝试实现一个日期选择器,它将日期以 mm/dd/yyyy 格式输入到表单字段中。我一直在努力将该日期转换为 unix 纪元格式以将该条目添加到行字段中。我所做的所有尝试都导致生成当天的纪元时间戳。有谁知道我如何采用该日期格式并将其转换为等效的纪元时间戳?
提前致谢。
其他信息:
我一直在尝试 mktime,我得到的只是今天的时代。抱歉,我应该早点添加一些代码来更好地解释:
表单id是“date”,数据库字段是“epoch”
这是我在发布 for 日期时正在尝试的(未成功):
$epochhold = ($_POST['date']);
$epoch = mktime(0,0,0,$epochhold);
我从之前的帖子中了解到,这仍然会将值提交为 mm/dd/yyyy 而不是 mktime 预期的 mm、dd、yyyy,但是该帖子没有提供有关如何执行此操作的解决方案。我尝试使用 str_replace 将“/”更改为“”,结果相同 - 无论输入的日期如何,都获取今天的纪元日期。
这是那个代码示例 - 这同样不起作用,但我添加它以帮助说明我尝试过的内容
$epochhold = ($_POST['date']);
$epochold2 = str_replace('/', ', ', $epochhold)
$epoch = mktime(0,0,0,$epochhold2);
也感谢您之前的回复,我不希望快速回复被忽视!
谢谢大家!
感谢大家的回复 - strtotime 似乎在初始测试中工作得最好,并且可能是要走的路,因为这种格式在整个网站上都是一致的。但是所有的建议都对其他一些事情有所帮助,所以再次感谢大家!
【问题讨论】:
-
您必须将 $epochhold 解析为 3 个变量,然后将所有三个变量都传递给 mktime。您不能只传递一个参数并期望 PHP 将其分成三个!我建议使用 split() 函数。