dongrang9300 2013-09-16 22:54
浏览 61
已采纳

当前日期无法在PHP中格式化

I'm using the jquery datepicker, and when today's date is selected, it's failing to convert to the format I need for a database query.

The datepicker date format is 'm-d-Y', so today appears as 09-16-2013. This part is working, and the datepicker correctly displays today's date as the default selection.

However, I need to use 'Y-m-d' format to query the database. This works fine when the date is less than today. But for today, it's failing and I'm getting 1969-12-31.

echo $enddt;

displays: 09-16-2013

I have tried:

echo date('Y-m-d', strtodate($enddt));
echo date('Y-m-d H:i:s', strtodate($enddt));

and neither works. How do I format $enddt so it displays 2013-09-16 ?

  • 写回答

2条回答 默认 最新

  • douliao8318 2013-09-16 22:57
    关注

    The function is actually strtotime(), not strtodate():

    Dates in the m/d/y or d-m-y formats are disambiguated by looking at the separator between the various components: if the separator is a slash (/), then the American m/d/y is assumed; whereas if the separator is a dash (-) or a dot (.), then the European d-m-y format is assumed. To avoid potential ambiguity, it's best to use ISO 8601 (YYYY-MM-DD) dates or DateTime::createFromFormat() when possible.

    Since you have the date string separated by dashes, we'll need to convert it into slashes first to make strtotime() recognize the format as mm/dd/yyyy:

    $enddt = '09-16-2013';
    $enddt = str_replace('-', '/', $enddt);
    echo date('Y-m-d', strtotime($enddt));
    

    Demo!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 ansys electronics 2021 R1安装报错,错误代码2,如图
  • ¥30 搭建面包板由NE555N和SN74LS90N组成的计时电路时出了问题
  • ¥15 无源定位系统的时差估计误差标准差
  • ¥15 请问这个代码哪里有问题啊
  • ¥20 python--version在命令端输入结果Python is not defined怎么办?还有pip不是exe格式是不是没安装成功?
  • ¥15 通过GaussianView进行结构微调消除虚频
  • ¥15 调用transformers库
  • ¥15 由于导出的数据名字中带有/,导致Matlab打不开,怎么办?
  • ¥15 新硬盘安装的程序总是崩溃,提示遇到错误
  • ¥15 openpcdet自制数据集评估bev精度和3d精度相同