栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

PHP mysql插入日期格式

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP mysql插入日期格式

如日期和时间文字中所述:

MySQL可以识别

DATE
以下格式的值:

  • 作为
    'YYYY-MM-DD'
    'YY-MM-DD'
    格式的字符串。允许使用“宽松”语法:任何标点符号都可以用作日期部分之间的分隔符。例如,
    '2012-12-31'
    '2012/12/31'
    '2012^12^31'
    ,和
    '2012@12@31'
    是相等的。

*作为没有格式

'YYYYMMDD'
或分隔符
'YYMMDD'
的字符串,前提是该字符串作为日期有意义。例如,
'20070523'
'070523'
被解释为
'2007-05-23'
,但是
'071332'
是非法的(它具有无意义的月份和日期部分),成为
'0000-00-00'

*作为数字

YYYYMMDD
YYMMDD
格式的数字,前提是该数字作为日期有意义。例如,
19830905
830905
被解释为
'1983-09-05'

因此,该字符串

'08/25/2012'
不是有效的MySQL日期文字。您有四个选择(按某种模糊的优先顺序,而没有您的要求的任何进一步信息):

  1. 配置Datepicker以使用支持的格式
    altField
    及其
    altFormat
    选项来提供日期:
    <input type="hidden" id="actualDate" name="actualDate"/>$( "selector" ).datepicker({altField : "#actualDate"altFormat: "yyyy-mm-dd"

    });

或者,如果您希望用户看到

YYYY-MM-DD
格式的日期,则只需设置
dateFormat
选项即可:

    $( "selector" ).datepicker({    dateFormat: "yyyy-mm-dd"});
  1. 使用MySQL的

    STR_TO_DATE()
    函数转换字符串:

    INSERT INTO user_date VALUES ('', '$name', STR_TO_DATE('$date', '%m/%d/%Y'))
  2. 将从jQuery接收的字符串转换成PHP可以理解为日期的形式,例如一个

    DateTime
    对象:

    $dt = DateTime::createFromFormat('m/d/Y', $_POST['date']);

然后:

* 获取合适的格式化字符串: $date = $dt->format('Y-m-d');* 获取UNIX时间戳: $timestamp = $dt->getTimestamp();

然后将其直接传递给MySQL的

FROM_UNIXTIME()
函数:

 INSERT INTO user_date VALUES ('', '$name', FROM_UNIXTIME($timestamp))
  1. 手动将字符串转换为有效的文字:
    $parts = explode('/', $_POST['date']);

    $date = “$parts[2]-$parts[0]-$parts[1]”;


警告

  1. 您的代码容易受到SQL注入的攻击。确实 应该使用准备好的语句,您将变量作为参数传递给该语句,这些参数无法通过SQL进行评估。如果您不知道我在说什么或如何解决它,请阅读Bobby Tables的故事。

  2. 此外,作为规定的出台对PHP手册章

    mysql_*
    功能:

自PHP
5.5.0起不推荐使用该扩展,不建议编写新代码,因为将来会删除该扩展。相反,应使用mysqli或PDO_MySQL扩展名。另请参见MySQL
API概述,
以获取选择MySQL
API时的更多帮助。

  1. 您似乎在使用
    DATETIME
    TIMESTAMP
    列来保存日期值;我建议您考虑改用MySQL的
    DATE
    类型。正如上文中
    DATE
    DATETIME
    TIMESTAMP
    类型:

DATE
类型用于具有日期部分但没有时间部分的值。MySQL检索并以
'YYYY-MM-DD'
格式显示DATE值。支持的范围是
'1000-01-01'
'9999-12-31'

DATETIME
类型用于包含日期和时间部分的值。MySQL检索并
DATETIME
'YYYY-MM-DDHH:MM:SS'
格式显示值。支持的范围是
'1000-01-01 00:00:00'
'9999-12-31 23:59:59'

TIMESTAMP
数据类型被用于同时包含日期和时间部分的值。UTC
TIMESTAMP
的范围是UTC。
'1970-01-0100:00:01'``'2038-01-19 03:14:07'



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392799.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号