我无法从表单中获取导入mysql的日期。
我的表单经过验证,输入将始终为dd / mm / yyyy
我正在使用
$date = date('Y/m/d', strtotime($_POST['night_attending']));
这会从表单中获取值并将其指定为年/月/日
问题是它的形式为mm / dd / yyyy
我可以将代码交换为“Y / d / m”,这将以正确的方式将其放入我的数据库中,但如果当天过了12日,它将停止工作,因为它仍然认为是月份
我尝试过使用
date_default_timezone_set('Europe/Dublin');
和
date_default_timezone_set('Europe/London');
但没有区别
我正在考虑在我的表单上使用mm / dd / yyyy格式,但这不是很好,因为它是一个英国网站。
有人遇到过这个问题吗?我敢肯定它必须是指挥官,而且必须有一个我错过的简单答案。
感谢
alsweet
答案 0 :(得分:2)
没有办法设置MySQL的日期格式 - 存在选项,但不强制/使用它们。
我不建议将日期存储为VARCHAR以维护您的格式 - 使用MySQL格式,并使用MySQL date functions(IE:STR_TO_DATE,DATE_FORMAT)来输出您想要的屏幕格式。
请注意,日期将取决于MySQL所在主机的时区 - 您可能需要考虑使用纪元时间戳,具体取决于您的需求。
答案 1 :(得分:2)
这将为您提供英国日期的mysql日期格式。
$timestamp = strtotime(str_replace('/', '.', '03/04/2011'));
$mysql_date = date('Y-m-d', $timestamp); // 2011-04-03
答案 2 :(得分:0)
您可以使用strptime()来解析日期:
$dateArray = strptime('%m/%d/%Y');
PHP 5.3上的
编辑:我在strtotime的评论中也看到了this,可能有所帮助。