我有一个包含日期和时间的字符串。我的字符串格式为OrdinalIgnoreCase
。
例如。 yyyymmddtime
。这是我的完整字符串,其中首先是月份,然后是月份,然后是该时间之后的第二天。如何通过转换为可读日期格式从中检索日期。我尝试使用php的日期功能。但产量不如预期。请帮忙。
答案 0 :(得分:2)
试试这个
<?php
$str_date= "20171125123000209";
$exiting_date_format='Ymd';
//first 8 characters from given date string in second parameter below
$date = DateTime::createFromFormat($exiting_date_format, substr($str_date,0,8));
echo $date->format('Y-m-d');//specify desired date format
?>
输出
2017-11-25
DateTime::createFromFormat - 根据指定的格式解析时间字符串
答案 1 :(得分:0)
你可以使用php的date()函数
<?php
$full_date= "20171125123000209";
echo date('dS F h:i:s A', $full_date);
//Output = 31st May 12:30:09 AM
?>
或强>
要像现在一样从时间戳中获取日期,
$timestamp= time(); //Or your timestamp here
$date = date('d-m-Y', $timestamp); //Inside first parameter, give your date format
echo $date; //17-12-2017
或强>
要从字符串中获取任何内容,您还可以使用php的substr()函数。
<?php
$full_date= "20171125123000209";
$year = substr($full_date, 0, 4);
$month = substr($full_date, 4, 2);
$date = substr($full_date, 6, 2);
echo 'Year = '.$year.' ';
echo 'Month = '.$month.' ';
echo 'Date = '. $date.' ';
?>
<强>输出:强> 年= 2017月= 11日= 25
答案 2 :(得分:0)
根本没有必要操纵字符串。 PHP的DateTime
类支持使用u
格式修饰符本地解析包含毫秒的字符串:
$str = '20171125123000209';
$date = DateTime::createFromFormat('YmdHisu', $str);
使用新的$date
对象,您可以转换为您正在寻找的任何格式,例如
echo $date->format("F j Y, g:i a");
// November 25 2017, 12:30 pm
答案 3 :(得分:-1)
$your_strtotime_val = ""; //20171125123000209
$convert_to_date = date("m-d-Y h:i:s",$your_strtotime); // [m-d-Y h:i:s] this depending on how you convert date in first time so be careful