当前位置: 首页 > 面试题库 >

在PHP中将一种日期格式转换为另一种日期格式

姬振濂
2023-03-14
问题内容

有没有一种简单的方法可以将一种日期格式转换为PHP中的另一种日期格式

我有这个:

$old_date = date('y-m-d-h-i-s');            // works

$middle = strtotime($old_date);             // returns bool(false)

$new_date = date('Y-m-d H:i:s', $middle);   // returns 1970-01-01 00:00:00

但是我当然希望它返回一个当前日期,而不是返回“黎明”。我究竟做错了什么?


问题答案:

第二个参数date()必须是正确的时间戳(自1970年1月1日以来的秒数)。您正在传递一个字符串,date()无法识别。

您可以使用 strtotime()
将日期字符串转换为时间戳。但是,即使strtotime()也无法识别y-m-d-h-i-s格式。

PHP 5.3以上

使用DateTime::createFromFormat。它允许您使用date()语法指定精确的掩码,以解析传入的字符串日期。

PHP 5.2及更低版本

您将必须使用手动解析元素(年,月,日,时,分,秒)substr(),并将结果传递给
mktime(),这将为您建立一个时间戳。

但这是很多工作!我建议使用strftime()可以理解的其他格式。strftime()可理解除之外的 任何 日期输入the next time joewill slip on the ice。例如,这有效:

$old_date = date('l, F d y h:i:s');              // returns Saturday, January 30 10 02:06:34
$old_date_timestamp = strtotime($old_date);
$new_date = date('Y-m-d H:i:s', $old_date_timestamp);


 类似资料:
  • 问题内容: 我正在寻找使用SQL将一种日期格式转换为另一种格式。我正在使用用于SQLite的数据库浏览器,日期存储在“ TEXT”类型的列中。 这是当前格式的2个示例: 2017/4/17上午9:09:09 2017/10/4下午10:21:13 请注意,在当前的日期,月份和小时格式中,如果只有一位数字,则当前不会以前导“ 0”填充。他们也把月份放在第一位,然后是日期,然后是年份。这两个示例应转换

  • 我有一个输入日期作为字符串,格式为dd/MM/yyyy 现在我想把它转换成日期对象,格式为yyyy-MM-dd 目前我正在做 输入为:“2013年4月2日” 但我的约会对象是… 所需输出为:2013-02-04(不是字符串,而是日期对象)

  • 问题内容: 我在MySQL中有专栏。 如何使用PHP 将其转换为 mm / dd / yy H:M(AM / PM)显示 ? 问题答案: 要将从MySQL检索的日期转换为请求的格式(): 请参考PHP日期格式选项以调整格式。

  • 问题内容: 我有一个输出数据数组的PHP脚本。然后将其转换为使用函数。 我的问题是我的数组中有一个日期,但日期格式不正确。 我怎样才能在PHP中转换它呢? 代替上面的日期,我需要等效的JavaScript函数 新的Date() 当我输出上述内容时,我得到以下内容:“ Fri Jun 01 2012 11:08:48 GMT + 0100(GMT Daylight Time)”但是,如果我将PHP日

  • 问题内容: 我只是在自己学习熊猫,而遇到的问题很少。 在从csv文件读取的DataFrame中,我有一列包含日期数据,该日期数据具有不同的格式(例如和,可能为空白。),并且我想统一此列的格式。但是我不知道是否还有其他格式。因此,当我使用时,它会引发一些错误,例如格式不匹配以及数据不符合时间要求。如何统一此列的格式? 我已经将该列的一部分转换为datetime dtype,它的格式是。我可以保留da

  • 问题内容: 我在使用此代码的php中有一个日期字段: 我如何将其转换为MySql格式的Registry,以便包含在db中。它是否遵循以下格式:date(’Ymd’strtotime($ date);.我问的原因是因为我尝试了此方法的变体,但似乎无法正常工作。显示为1970还是其他变体对此非常感谢 问题答案: 1.如果您的MySQL列为: 2.如果您的MySQL列为: 您无需工作,因为它不适用于破折