php - 转换日期 (PHP)
问题描述
我正在使用JDF
库来转换面板中的数据库日期。我的编程语言是php
并且我正在使用while
循环来显示数据。数据库日期类型为datetime
。例如:2018-07-21 11:14:19.678896
<?php
Include_once "jdf.php";
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$array = explode(' ', $row['date']);
list($year, $month, $day) = explode('-', $array[0]);
list($hour, $minute, $second) = explode(':', $array[1]);
$timestamp = mktime($hour, $minute, $second, $month, $day, $year);
date_default_timezone_set("Asia/Tehran");
$converted_date = jdate("Y/m/d H:i:s", $timestamp);
echo $row['full_name'] . ", reg date:" . $converted_date;
}
当我运行代码时,Y/m/d
变为转换但仅H:i:s
第一行变为转换。我真的不知道为什么......
你能帮帮我吗?
解决方案
使用内置DateTime
类来处理数据可能更简单:
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$date = date_create_from_format('Y-m-d H:i:s.u', $row['date'], new DateTimeZone('UTC'));
$date->setTimeZone(new DateTimeZone('Asia/Tehran'));
$converted_date = jdate('Y/m/d H:i:s', (int)$date->format('U'));
echo $row['full_name'] . ", reg date:" . $converted_date;
}
输出:
2018/07/21 15:44:19
推荐阅读
- java - 如何使用 Ant 解决模式解析异常?
- opencart - payU money 完整的个人资料正在进行中 opencart 集成过程
- c++ - 需要一些关于如何改进这些命令字符串生成器功能的建议
- javascript - 替换 keyup 上的文本而不显示默认值
- javascript - 为什么打开和关闭后展开的卡片预览文字增加了?
- java - Wildfly 忽略包含的库
- android - 链接 react-native-splash-screen 时出错
- python - 滚动时更改滚动窗口大小
- r - 第二行作为列标题使用 R Shiny 中的 DT 数据表
- java - [vert.x]Vertx tcp 套接字在写入快速时读取部分消息