Формат датирует php

У меня есть эта дата в php:

31082016

И я хочу переместить ее в этот формат:

dd-mm-yyyy

У меня есть следующий код, но он дает мне ошибку:

echo "<br/><hr/>" . $fechaIn . "<hr/><br/>";
echo "<br/><hr/>" . date('d-m-Y', $fechaIn) . "<hr/><br/>";

И он показывает мне следующее:

<br/>
<hr/>31082016<hr/>
<br/>
<br/>
<hr/>26-12-1970<hr/>
<br/>

Каковой может быть проблема??

3
задан 18.08.2016, 12:20
3 ответа

У тебя есть другая opciГіn, что serГ, - чтобы отделять каждую составную часть и относиться к этому despuГ©s.

Настаивая patrГіn на том, чтобы ты начал;

$fechaIn = '31082016';

$y = substr( $fechaIn, 4, 4 );
$m = substr( $fechaIn, 2, 2 );
$d = substr( $fechaIn, 0, 2 );

echo "<br/><hr/>" . $fechaIn . "<hr/><br/>";
echo "<br/><hr/>" . date( 'd-m-Y', mktime( 0, 0, 0, $m, $d, $y ) ) . "<hr/><br/>";
7
ответ дан 24.11.2019, 13:37

Функция date() такое взятие как параметр число, которое является timestamp (а именно количество секунд, которые произошли с 01.01.1970. Поэтому он возвращает тебе эту дату.

Изменять string прямо

То, чего tenés один string что сформирован как ddmmaaaa (день - mes-año). Единственное, что necesitás, чтобы ему давать формат, что buscás в добавлении схем, чтобы отделять их.

Мы используем substr_replace() чтобы добавлять схему в положении 2 и в положении 4:

echo substr_replace(substr_replace($fechaIn, '-', 4, 0), '-', 2, 0);


Конвертировать string в дате

Если бы ты захотел превратить string в первый формат даты, лучший выбор состоит в том, чтобы использовать DateTime:: createFromFormat ():

$fechaIn = '31082016';

//Convertir un string a fecha
$fechaDateTime = DateTime::createFromFormat('dmY', $fechaIn);

//Imprimir la fecha en el formato deseado
echo $fechaDateTime->format('d-m-Y');

Результат

31-08-2016
6
ответ дан 24.11.2019, 13:37
  • 1
    Quiz и # 225; это м и # 225; s f и # 225; cil преобразовывать string в один timestamp? =P – Miquel Coll 18.08.2016, 12:22
  • 2
    opci и # 243; n интересный @Mariano – OscarR 18.08.2016, 12:51

Три примера в формате, который ты показываешь:

Пример 1

<?php
$source = '2012-07-31';
$date = new DateTime($source);
echo $date->format('d.m.Y'); // 31.07.2012
echo $date->format('d-m-Y'); // 31-07-2012
?>

Пример 2

date("d/m/Y", strtotime($str));

Пример 3

$var = '20/04/2012';
$date = str_replace('/', '-', $var);
echo date('Y-m-d', strtotime($date));

Я рекомендую тебе наблюдать форматы и больше функций Здесь и Здесь

4
ответ дан 24.11.2019, 13:37