2013-05-16 60 views
-2
$Ndate = new DateTime($theValue); 

$theValue = "'" . $Ndate->format('Y-m-d') . "'"; 

我有名字dateOfjourney一个文本框,我想进入日 - 月 - 年格式的日期,并存储在年 - 月 - 日的格式在MySQL的日期。PHP和MYSQL日期格式

$theValue是,我将在SQL语句中

+0

你要在数据库中存储什么? '$ Ndate'或'$ theValue'? – Voitcus

+0

我想要从文本框中采用m-d-y格式的日期,并使用sql查询将其转换为默认的y-m-d格式 –

+0

为什么要在应用程序中混用标准?为什么不使用并保存时间戳,然后在向用户显示时以指定的格式显示它们? – inquam

回答

0

一旦你在POST数据的DMY日期使用SQL字符串,你可以这样做:

$db_date = implode("-" , array_reverse(explode("-" , $date_from_form))); 
4

最可靠,最省心的办法插入日期,MySQL是使用MySQL的STR_TO_DATE:

STR_TO_DATE('dateOfjourney', '%d-%m-%Y') 

这种方式,用户可以输入任何他们想要的,并在后端你有你想要的东西。

+0

+1这很不错! –

+0

+1,但格式应该是'%m-%d-%Y' – Voitcus

+0

更新它以反映他说他的用户提供的d-m-y格式。 –

1

你可以转换它使用php date函数。

date("m-d-y",strtotime($theValue)); 

了解strtotime()

+0

我总是想知道'strtotime()'是否可以正确地说出它是“01-02-03”的哪一天。 – Voitcus

+0

我只是改变日期的格式使用strtotime() –

+0

在美国01是月,02是日,03是年。因此,这将是2003年1月2日。但它也可以是2003年2月1日或2001年2月3日。我不喜欢这个功能,因为你永远不知道服务器如何处理日期。 – Voitcus

0

你可以使用这个

$user_input = '01-23-2013'; // 23rd of January 
list($month, $day, $year) = explode('-',$user_input); 
$output = $year . '-' . $month . '-' . $day; 
+0

此方法工作 –

0

在PHP 5.3+,你可以这样做:

$dateFormatted = DateTime::createFromFormat('m-d-y', $dateFromForm)->format('y-m-d');