【问题标题】:How to display time in PHP by date() function如何通过 date() 函数在 PHP 中显示时间
【发布时间】:2018-08-06 12:26:21
【问题描述】:

我从 CSV 文件中获取值 9.0,我想将其打印为时间 09:00:00
如果我尝试

<?php
$time = 9.01;
echo date('H:i:s', strtotime($time));

它显示09:01:00
但如果我尝试

<?php
$time = 9;
echo date('H:i:s', strtotime($time)); or echo date('H:i:s', strtotime(9.00));

它显示 01:00:00。 我想得到 09:00:00 的时间。

【问题讨论】:

  • 您的问题是您在 strtotime 中使用了非标准格式(应该将字符串作为参数,而不是双精度)。
  • 您如何阅读 CSV?听起来您的数据正在被转换为整数或浮点数,而 strtotime 并不总是能够处理。字符串'9.00' 应该可以正常工作。
  • 当我将 xls 保存到 csv 数据时,数据会根据 09.01 转换为 9.01 和 09.00 转换为 9 等值自动转换为浮点数和整数
  • 这是我的 CSV 文件中的问题吗?

标签: php


【解决方案1】:

请试试这个

$time =  9;
echo date( 'H:i:s', strtotime( number_format($time, 2)));

【讨论】:

  • 我需要导入 csv 文件来更新数据库,如果时间 9.00 自动转换为 9 并且 strtotime('9') 给我 01:00:00,则在 csv 文件中
  • @Deepak3301086 我觉得这个方案比较正确,转成字符串就行了
  • @Deepak3301086 试试这样的
  • 可以使用number_format($number, 2)强制小数点后两位数。
  • 如果我转换为字符串,那么 strtotime('9') 也不起作用
【解决方案2】:

这是用您需要的任何值填充日期变量的方法:

<?php
$d=mktime(9, 0, 0);
echo "Created date is " . date("h:i:s", $d);
?>

查看mktime的文档

【讨论】:

  • 我试过 $t = '9'; $d = mktime($t);因为我的时间来自 csv,它也不适合我
  • 你需要填写所有的值 $d=mktime(hours, min, sec);或者你可以试试这个 $d=mktime($t, 0, 0);
  • 你的意思是,首先我需要检查值是否浮动然后爆炸并放入 mktime($t[0], $t[1], 0) 并且如果整数然后放入相同的值mktime($t, 0, 0)?
  • @Himas 并非所有参数都是必需的,文档说明它们是可选的。只禁止在没有 any 参数的情况下调用它,我们应该使用 time 代替。
  • @AnthonyB 是的,但是为了与日期格式兼容,我们需要填写它们。这样他就可以根据需要显示 {9:00:00}。
【解决方案3】:

看来主要问题是导入 CSV 的日期格式错误。假设您无法更改它并且该值为{hours}.{minutes}。分钟不是分数,而是介于 0 - 60 之间的值。否则,需要调整以将小时的分数转换为分钟。

我正在使用DateTime 类来实现这一点。

$value = 9.1;

if (is_float($value)) {
    $hour = (int)$value;
    $minute = number_format(($value - floor($value)) * 100);

    $date = new DateTime();
    $date->setTime($hour, $minute);
} else {
    $date = new DateTime($value);
}

$formattedTime = $date->format('H:i');

echo $formattedTime . "\n";

【讨论】:

    【解决方案4】:

    12 小时甲酸 回声日期(“h:i:s a”); 24 小时甲酸 回显日期("H:i:s");

    【讨论】:

    • 这并不能以任何方式回答问题。
    猜你喜欢
    • 2011-02-14
    • 2019-08-23
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    相关资源
    最近更新 更多