php - 将日期 dd/mm/yyyy 格式从表单转换为时间戳?

标签 php date datetime timestamp

我有一个表格要求日期为 dd/mm/yyyy 格式 我尝试使用 strtotime() 函数将其转换为时间戳

但我看到它只有在你填写表格时才有效,日期写成 dd-mm-yyyy

我该如何解决?我不知道在国外,但在意大利这里没有人这样写日期 dd-mm-yyyy

最佳答案

停止使用strotime()date()time()等函数,开始使用DateTime .

所有类型已知输入的完美解决方案:

$dt = DateTime::createFromFormat('d/m/Y', $yourDMYinput);
echo $dt->getTimestamp(); # or $dt->format('U');

为什么需要时间戳?

为什么要爆炸、更换甚至切断绳子???只需使用 createFromFormat .

Q1: Because its not supported below PHP 5.3.

v5.5 已经出来了。我认为答案应该针对最新代码,而不是 2006 年的代码。是的,v5.2 于 2006 年发布,v5.3 于 2009 年发布(see release dates)。如果 OP 请求旧代码,请在 SO 上找到它,并用重复项结束此问题;不要回答。

Q2: Because I don't know DateTime.

学习它。

Q3: Because I can do more with strotime(), date(), time() etc.

告诉我一件这个函数可以做而 DateTime 不能做的事。

“弃用”代码示例:

$input = '12/09/2013'; # dd/mm/yyyy

$new = substr($input,6,4)."-".substr($input,3,2)."-".substr($input,0,2);
$new = strtotime($new);
echo "$new\n";

$m = explode('/', $input);
$new = mktime(0,0,0,$m[1],$m[0],$m[2]);
echo "$new\n";

$new = str_replace("/", "-", $input);
$new = strtotime($new);
echo "$new\n";

preg_match('~^(\d+)/(\d+)/(\d+)$~', $input, $m);
$new = strtotime("$m[3]-$m[2]-$m[1]");
echo "$new\n";

$m = sscanf($input, '%d/%d/%d');
$new = strtotime("$m[2]-$m[1]-$m[0]");
echo "$new\n";

如果您有另一个已弃用代码的示例,请编辑此答案并添加它 ;)

关于php - 将日期 dd/mm/yyyy 格式从表单转换为时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18760990/

相关文章:

PHP html_entity_decode 和修剪困惑

javascript - 如何使用JavaScript获取dynamic cm中的帐户名?

C#如何计算排除特定日期的工作日(节假日)

python - 以格式化的日期时间字符串显示时区名称

Java日期时间解析异常: text cannot be parsed

php - Guzzle6错误无效的资源类型:发送GuzzleHttp\Psr7\Request时的数组

php - 一种将 Laravel 输入数据保存到 session 的优雅方式

javascript - 使用 npm 导入 date-fns

sql - 当一个范围具有一系列开始日期时比较两个日期范围

javascript - 我的 ajax 调用数据部分中的 php 文件有什么问题?