How to format Date field in Ionic Form / Angularjs

2

I have a date field on a form that looks like this:

<label class="item item-input item-floating-label">
            <span class="input-label">Validade da Oferta</span>
            <input type="date" ng-model="product.cadastra_oferta_validade_oferta" placeholder="Validade da Oferta" />               

        </label>

But it does not store in my PHP, because the date format in the database is different. Any tips on how to solve this problem? Here's my PHP:

<?php
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");

    //formulário

    $data = file_get_contents("php://input");
    $objData = json_decode($data);

    // TRANSFORMA OS DADOS

    $cod_categoria_com = $_GET['cod_categoria_com'];
    $titulo_promocao = $_GET['titulo_promocao'];
    $descricao = $_GET['descricao'];
    $igredientes = $_GET['igredientes'];
    $foto = $_GET['foto'];
    $valor_sem_desconto = $_GET['valor_sem_desconto'];
    $valor_com_desconto = $_GET['valor_com_desconto'];
    $validade_oferta = $_GET['validade_oferta'];
    $estoque = $_GET['estoque'];
    $cod_fornecedor = $_GET['cod_fornecedor'];
    $cod_categoria = $_GET['cod_categoria'];
    $imagem = $_GET['imagem'];
    $desconto = $_GET['desconto'];

     // INSERE OS DADOS
    $db = new PDO("mysql:host=HOSTr;dbname=BANCO", "USER", "SENHA");


    if($db){

        $sql = "INSERT INTO cadastra_oferta (cod_fornecedor, cod_categoria_com, titulo_promocao, descricao, igredientes, foto, valor_sem_desconto, valor_com_desconto, desconto, validade_oferta, qtd_estoque) VALUES ('$cod_fornecedor', '$cod_categoria', '$titulo_promocao', '$descricao', '$igredientes', '$imagem', '$valor_sem_desconto', '$valor_com_desconto', '$desconto', '$validade_oferta', '$estoque')";


        $query = $db->prepare($sql);        

        $query ->execute();        

        echo json_encode(array('message'=> ' Os dados foram inseridos com sucesso. Obrigado e bem vindo!' ));
    }else{
        echo json_decode(array('message'=> ' Não foi possivel iserir os dados! Tente novamente mais tarde!' ));
    };



?>
    
asked by anonymous 12.01.2017 / 11:40

3 answers

1

Angle stores dates as JavaScript Date objects which is a Unix timestamp ( link ), and since you want to process it in PHP, you can use the date() ( link ) for this.

$validade_oferta = $_GET['validade_oferta']; // "1490842800"
$validade_date = date('Y-m-d', intval($validade_oferta)); // "2017-03-30"
    
07.03.2017 / 21:26
1

The bank saves the date and international format year-month-day 2017-01-12. If the form is being filled in the Brazilian format 10/12/2017 you should convert the date before sending it to the bank.

A simple way to do this is like this:

$data = implode("-",array_reverse(explode("/",$data)));

Another thing, you are sending the data directly from the customer to the bank, this is a bit problematic. It can generate multiple inconsistencies and more errors if no required field or a different data type is filled in.

    
12.01.2017 / 14:18
1

Friend, you can create a directive that formats to the standard you need. Here's another post for reference.

Formart data

    
09.03.2017 / 22:28