php - 将日期字符串从请求转换为 MySQL 兼容的日期格式
问题描述
我从 Ajax 调用中获取日期作为字符串:"Wed Jun 17 2020 09:26:45 GMT+0200 (Mitteleurop\u00e4ische Sommerzeit)"
并尝试将其格式化"Y-m-d H:i:s"
但失败了。我试过了
$my = $request->input('date');
$date = Carbon::parse($my);
$date = date("Y-m-d H:i:s", strtotime($my));
$date = Carbon::createFromFormat('Y-m-d H:i:s', $my);
$date = Carbon::create(my);
但没有任何效果。碳起作用并$request->input('date')
存在。这里有什么问题?
解决方案
由于 PHP 不会处理每种可能语言中的所有可能时区,因此对于 1 个特定时刻的时区来说Mitteleurop\u00e4ische Sommerzeit
make Carbon::parse
butGMT+0200
就足够了,因此您可以删除额外的时区:
$my = $request->input('date');
$my = preg_replace('/\s*\(.*\)$/', '', $my);
$date = Carbon::parse($my);
$date = date("Y-m-d H:i:s", strtotime($my));
$date = Carbon::createFromFormat('Y-m-d H:i:s', $my);
$date = Carbon::create(my);
您仍然应该认为这是一种解决方法。正确的方法是使用 ISO 字符串(在 GMT 时区)发送日期,Europe/Berlin
如果时区很重要,则在其他字段中发送干净的时区。
推荐阅读
- windows - 为什么在我执行 pm2 进行服务器端渲染后删除了 .nuxt 中的 dist 文件夹?
- android - 使用 ionic 在 esc/pos 移动打印机中连接和打印
- python - 从 python 调用时如何捕获 git bash 的命令行打印输出?
- objective-c - iOS:块捕获一个值
- reactjs - 以外部 api 为前缀的任何地方的 CORS 都需要 400 标头
- html - 选定选项卡上的样式
- java - 仅填充和清空所选行的 JComboBox
- javascript - 如何从 html5 中的输入类型 = 文件中获取缓冲区对象,如 nodejs 中的 fs readFile
- ios - React-Native IOS 构建在 pod 安装时出现错误。?
- python - Selenium Python XPATH how to select input field which is in post form?