从yyyymmdd格式转换为PHP的日期 [英] Converting to date in PHP from yyyymmdd format

查看:180
本文介绍了从yyyymmdd格式转换为PHP的日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下格式的日期(yyyymmdd,18751104,19140722)...什么是最简单的方式将其转换为date()....或正在使用mktime()和子串我最好的选项...?

解决方案

使用 strtotime() 将包含日期的字符串转换为 Unix时间戳

 <?php 
//两行输出813470400
echo strtotime(19951012),\\\

strtotime(1995年10月12日);
?>

您可以将结果作为第二个参数传递给 date() 自动重新格式化日期:

 <?php 
// prints 1995 Oct 12
echo date(YM d,strtotime(19951012 ));
?>



注意



strtotime()将在1970年初之前的Unix纪元之前的日期失败。



作为替代,将适用于1970年之前的日期:

 <?php 
//返回年份自1900年以来的偏移量,在$ b前的年份为负$ b $ parts = strptime(18951012,%Y%m%d);
$ year = $ parts ['tm_year'] + 1900; // 1895
$ day = $ parts ['tm_mday']; // 12
$ month = $ parts ['tm_mon']; // 10
?>


I have dates in the following format (yyyymmdd, 18751104, 19140722)... what's the easiest way to convert it to date().... or is using mktime() and substrings my best option...?

解决方案

Use strtotime() to convert a string containing a date into a Unix timestamp:

<?php
// both lines output 813470400
echo strtotime("19951012"), "\n",
     strtotime("12 October 1995");
?>

You can pass the result as the second parameter to date() to reformat the date yourself:

<?php
// prints 1995 Oct 12
echo date("Y M d", strtotime("19951012"));
?>

Note

strtotime() will fail with dates before the Unix epoch at the start of 1970.

As an alternative which will work with dates before 1970:

<?php
// Returns the year as an offset since 1900, negative for years before
$parts = strptime("18951012", "%Y%m%d");
$year = $parts['tm_year'] + 1900; // 1895
$day = $parts['tm_mday']; // 12
$month = $parts['tm_mon']; // 10
?>

这篇关于从yyyymmdd格式转换为PHP的日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆