如何在从表单输入(类型=时间)读取的数据中获取“AM/PM”?

Posted

技术标签:

【中文标题】如何在从表单输入(类型=时间)读取的数据中获取“AM/PM”?【英文标题】:How to get "AM/PM" in data read from a form input (type=time)? 【发布时间】:2014-12-07 01:10:25 【问题描述】:

我有这个代码:

<input class="meting" name="meetingtime" value="<?php echo $_POST['meetingtime'] ?>" type="time"/>

<?php
    $time = $_POST['meetingtime'];
    echo $time; // the output of this is only the numbers
?>

如何在 PHP 中获取 AM/PM 值?

【问题讨论】:

chrome是网页浏览器,与运行PHP代码无关 你在哪里设置$time echo $time 的输出应该是用户在表单的meetingtime 字段中输入的值,那么您在meetingtime 字段中输入了什么? 这个link 可能会对你有所帮助。 如果以下答案之一包含您问题的正确答案,请将其标记为已接受。这是一个绿色复选框,位于每个答案左侧的 Vote Up/Down 按钮下方。 【参考方案1】:

html5 输入(例如 datetimedatetime)将以可识别区域设置的格式显示给用户。例如,在美国,日期字段可能会被格式化为 MM/DD/YYYY(因为这在某种程度上对他们来说是有意义的......)但在欧洲它将是 DD/MM/YYYY。但是,在这两种情况下,服务器都会收到 YYYY-MM-DD(标准日期格式)

类似的事情也适用于时间。如果您的计算机设置为 24 小时制,则它不会使用 AM/PM,而 12 小时设置会。无论哪种方式,它都会发送 24 小时的时间,因为这是标准。

【讨论】:

是的,当我输入 12:30 AM 时它变成了 00:30,可能计算机没有设置为 12 小时格式。我们如何将时间格式设置为 12 小时?【参考方案2】:

我所看到的(在美国)...

如果输入时间是:9:45 PM,那么$_POST['meetingtime']的值为23:45

要获得 AM/PM,您需要检查该值是否小于 12:00 是 AM 或大于或等于 12:00 是 PM。

一个简单的方法是使用intval()获取小时值:

echo intval($time) < 12 ? 'AM' : 'PM';

【讨论】:

【参考方案3】:

如果

这个输出只是数字

那么它可能是一个时间戳,例如,您必须使用 date() 将其转换为可读的日期格式。

给出 2001 年 3 月 10 日下午 5:16 的示例: (假设 $time 是一个时间戳长数字)

<?php echo date("F j, Y, g:i a", $time); ?>

【讨论】:

以上是关于如何在从表单输入(类型=时间)读取的数据中获取“AM/PM”?的主要内容,如果未能解决你的问题,请参考以下文章

如何确定从我的 html 表单获取的输入值的数据类型,以便我可以使用它们在准备好的语句中绑定参数

AJAX - 如何从输入文件中获取数据以附加表单数据?

如何在从 NodeJS 中的多个输入流中读取时写入单个文件

如何在从服务器获取数据的动态表的每一行中添加下拉列表?

如何使用 Ember 从表单中读取自动填写的用户名/密码

Wordpress 在从 url 获取参数的页面加载上使用 ajax