mysql中的英国日期格式

时间:2010-11-02 20:43:05

标签: php mysql sql datetime

我无法从表单中获取导入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

3 个答案:

答案 0 :(得分:2)

没有办法设置MySQL的日期格式 - 存在选项,但不强制/使用它们。

我不建议将日期存储为VARCHAR以维护您的格式 - 使用MySQL格式,并使用MySQL date functions(IE:STR_TO_DATEDATE_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上的

date_parse_from_format()

编辑:我在strtotime的评论中也看到了this,可能有所帮助。