Php 从用户输入到时间的字符串

Php 从用户输入到时间的字符串,php,strtotime,Php,Strtotime,我有一个注册页面,其中有3个下拉框,分别表示日、月和年 以数字格式设置日-(1-31)月(01-12)和年(1993)等 现在我有问题把它的时间戳 尝试: $day = $_POST['day']; $month = $_POST['month']; $year = $_POST['year']; $Dob = strtotime($month . " " . $day . " " . $year); 但是它没有给我任何输出:(。我需要以一种特殊的方式组织一年中的一天、一个月吗 $Dob =

我有一个注册页面,其中有3个下拉框,分别表示日、月和年 以数字格式设置日-(1-31)月(01-12)和年(1993)等

现在我有问题把它的时间戳

尝试:

$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];

$Dob = strtotime($month . " " . $day . " " . $year);
但是它没有给我任何输出:(。我需要以一种特殊的方式组织一年中的一天、一个月吗

$Dob = strtotime($day . "-" . $month . "-" . $year);
注意:

通过查看各个组件之间的分隔符,可以消除m/d/y或d-m-y格式中的日期歧义:如果分隔符是斜杠(/),则假定为美国m/d/y;而如果分隔符是破折号(-)或点(.),则假定为欧洲d-m-y格式

注意:

通过查看各个组件之间的分隔符,可以消除m/d/y或d-m-y格式中的日期歧义:如果分隔符是斜杠(/),则假定为美国m/d/y;而如果分隔符是破折号(-)或点(.),则假定为欧洲d-m-y格式

两件事:
1) 永远不要假设数据不受用户输入的影响,即使它来自下拉列表。(int)强制每个项为整数。虽然在这种情况下并不重要,但对于数据库存储来说,始终清理数据输入变得非常重要

2) 你只需要在两者之间划斜线<代码>标准时间识别

两件事:
1) 永远不要假设数据不受用户输入的影响,即使它来自下拉列表。(int)强制每个项为整数。虽然在这种情况下并不重要,但对于数据库存储来说,始终清理数据输入变得非常重要

2) 你只需要在两者之间划斜线<代码>标准时间识别


它必须遵循手册页面上引用的预定义日期格式类型之一。


它必须遵循手册页面上引用的预定义日期格式类型之一。

试试看

<?php
if (empty($_POST['month']) || empty($_POST['day']) || empty($_POST['year'])) {
  // handle invalid input, at least one of month, day, year wasn't given
} else if (!checkdate($_POST['month'], $_POST['day'], $_POST['year'])) {
  // handle invalid date, such as February 30th
} else {
  // convert to epoch (unix timestamp)
  $time = mktime(0, 0, 0, $_POST['month'], $_POST['day'], $_POST['year']);
}
试试看


它不给您任何输出是什么意思?如果无法解析日期,它将始终返回至少
false
(或者在旧版本的PHP上返回-1)。您可以尝试
strotime($month.-“$day.-”$year)我将信息放入数据库,但它没有插入:/n你说它没有给你任何输出是什么意思?如果无法解析日期,它将始终返回至少
false
(或者在旧版本的PHP上返回-1)。您可以尝试
strotime($month.-“$day.-”$year)我正在将信息放入数据库,但没有插入:/mate,谢谢!这很有帮助:),尝试使用日期输入,但似乎无法获得正确的布局:)。]谢谢,伙计!这很有帮助:),尝试使用日期输入,但似乎无法获得正确的布局:)。]
<?php
if (empty($_POST['month']) || empty($_POST['day']) || empty($_POST['year'])) {
  // handle invalid input, at least one of month, day, year wasn't given
} else if (!checkdate($_POST['month'], $_POST['day'], $_POST['year'])) {
  // handle invalid date, such as February 30th
} else {
  // convert to epoch (unix timestamp)
  $time = mktime(0, 0, 0, $_POST['month'], $_POST['day'], $_POST['year']);
}