首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不迭代到相同值的PHP时间戳

问不迭代到相同值的PHP时间戳
EN

Stack Overflow用户
提问于 2017-03-17 17:36:10
回答 2查看 151关注 0票数 0

我正面临unix时间戳、php和mysql的问题,如果有人能向我解释我出了什么问题,或者如果我没有,那么我为什么要得到我得到的数据,那就太好了。

当我使用jquery将年月日格式的日期传递给php时,时间戳中的小时和分钟默认设置为23:00:00,尽管我没有在请求中传递此信息。所以我的问题是这个幻影23:00从哪里出现?

工作流程:

使用datepicker的:datepicker -> php -> mysql =时间戳,其时间设置为23:00:00。

不使用datepicker的: php->mysql =时间戳,带有正确的时间和分钟。

感谢您的阅读。

编辑: PHP代码:

代码语言:javascript
复制
PHP code:

$setdatealpha = $_POST['datepickeralpha'];
$setdatealpha = strtotime($setdatealpha);

// With this, I am inserting into MySQL like so:


$sql = "INSERT INTO TABLE (DATE_FIELD) VALUES (?)";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('s',$setdatealpha);
$stmt->execute();

现在,当我读取输入的信息,并通过日期(‘Y-m-d,时间戳)将其转换为日期时间格式时,日期输入正确,时间条目具有23:00:00的值。

如果我通过strtotime (日期)进行标准会话,则不会发生这种情况;

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-20 12:18:38

根据当前可用的信息,我建议您确保每个时间戳都在UTC。我总是遇到时区问题。

对于PHP,比如:$current_timestamp = strtotime($date." UTC");

对于jQuery数据报警器,我发现了一个堆栈溢出线程:如何在jQuery日期选择器中获取utc时间

票数 2
EN

Stack Overflow用户

发布于 2017-03-20 12:13:25

很可能是时区。

首先,让我们澄清一下上下文。strtotime()生成一个Unix时间戳,显然您可以用它给DATE_FIELD提供信息。如果这样做有效,就意味着该列是一个INTEGER。在这种情况下,您之后会做一些事情来显示日期,并且您还没有共享这个部分--而且,MySQL在这里是无辜的,因为它甚至不知道DATE_FIELD是什么意思。

虽然strtotime()可以提供一个原始日期,但它也需要生成时间。它做不到,除非它知道时区。此外,当您有一个带有Unix时间戳的整数变量并且希望将它显示为适当的日期时,您还需要知道时区。

在这两种情况下,如果不提供PHP,PHP将使用默认值:

代码语言:javascript
复制
var_dump(date_default_timezone_get());

因此,您可能希望设置一个已知的,例如,set()。然而,您的用户可能有一个与您不同的时区,因此您的用户对他们来说毫无意义。由于您提示用户要一个原始日期(没有时间),所以时间实际上可能与问题无关。在这种情况下,您可能想:

  1. 制作DATE_FIELD的DATE类型。
  2. 避免使用strtotime()和类似的东西。您可能想要使用校验日期()代替。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42863897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档