当前位置: 首页 > 面试题库 >

date()返回1970-01-01

宋成天
2023-03-14
问题内容

我正在使用具有以下格式mm / dd / yyyy的jquery datepicker,但我需要它是sql数据库的yyyy-mm-dd,所以我正在使用它。

   $date  = date("Y-m-d",strtotime($startdate));

与以下

 $query = "INSERT INTO complete_table ( name, startdate) VALUES ('$_POST[name]', '$date')";

不幸的是,无论输入什么,我都会在数据库中注册1970-01-01。有什么想法我做错了吗?非常感谢你的帮助。


问题答案:

当您1970-01-01从那里回来时date(),意味着时间戳不正确。该日期是UNIX时代。

当涉及到Javascript(在这种情况下为日期选择器)时,您应始终确保获得的实际上是您期望的结果。简单地将其传递strtotime()将导致类似您在此处遇到的问题。

处理日期的一种好方法是使用datetime扩展名。它有一个静态方法,DateTime::createFromFormat可让您使用任何格式解析任何日期:

// The value from the datepicker
$dpValue = '12/30/2013';

// Parse a date using a user-defined format
$date = DateTime::createFromFormat('d/m/Y', $dpValue);

// If the above returns false then the date
// is not formatted correctly
if ($date === false) {
    header('HTTP/1.0 400 Bad Request');
    die('Invalid date from datepicker!')
}

// Using the parsed date we can create a
// new one with a formatting of out choosing
$forSQL = $date->format('Y-m-d');

// ...


 类似资料:
  • 问题内容: 我有从Web服务下载的带有长值的列表(例如:1220227200、1220832000、1221436800 …)。我必须将其转换为日期。不幸的是,这种方式例如: 返回1970年1月1日。有人知道另一种正确转换它的方法吗? 问题答案: 该Date构造函数(点击链接!)接受的时间long在毫秒,不秒。你需要将其乘以1000,并确保将其提供为long。

  • 问题内容: 我有一个日期格式为的表格。为了搜索数据库,我将日期格式转换为。但是当我显示它时。PHP代码如下: 为什么会这样呢?如何将其格式化为? 问题答案: 替换为:

  • 问题内容: [PAYOFF DATE]列具有一些空白值和一些以mm / dd / yy格式表示的值。 我必须将“ /”替换为“-”,并将日期返回为yyyy-mm-dd。下面的查询正在执行此操作。问题是对于所有空白值,我得到的结果都是1900-01-01。 是否可以将1900-01-01替换为null并按yyyy-mm-dd格式返回其他有效日期值? 我正在使用SQL Server。 问题答案: 您不

  • 在windows上的MongoDB Shell中,如果运行值为的查询 它实际上似乎在寻找 如果您直接在Mongo Shell中输入“new ISODate('0001-01-01T00:00:00Z')”,您可以在返回ISODate(“1901-01-01T00:00:00Z”)时看到正在进行的转换。 奇怪的是,当您使用“new Date”而不是“new ISODate”时,请输入: 它返回正确的

  • 我有一个外部配置单元表指向通过s3上的Spark作业编写的拼花文件,它有日期、时间戳字段,当我通过配置单元查询时,我会得到正确的日期 但是,当我通过运行在EMR集群版本(EMR-5.6.0)上的presto(版本0.170)运行它时,我看到所有的日期都是1970-01-01 通过presto进行Parquet查询的Hive中的时间戳字段是否存在任何未解决的问题?

  • 问题内容: 我目前正在尝试通过将日期转换为时间戳来在数据集中生成数字特征。如果在Mac上运行,它可以完美运行,在Windows上,它会抛出: 这可能是由于Windows不支持1970-01-01之前的unix时间戳。我的约会日期从1955年开始。这是我的代码: 我在某处看到建议使用,但我不知道如何集成它。 问题答案: 您可以通过(隐式)使用计算“格雷戈里”时间戳来实现,该时间戳对于从1582年10