1

I'm having a small issue here where my input date is showing up as dd/mm/yyyy however when I use my php to get this data and do a simple echo to check everything is working, it outputs yyyy/mm/dd (backwards) any ideas why this is?

Example

Input:

dd/mm/yyyy

01/02/2016

Output:

yyyy/mm/dd

2016/02/01

HTML

<form method="post" action="MyDoc.php" autocomplete="off">
  <input type="date" name="date_1A5">
</form>

PHP

<?php
  if ($_SERVER['REQUEST_METHOD'] == 'POST'){
      $risk_1A5 = $_POST['date_1A5'];
      echo 'Risk_1A5: '.$risk_1A5.'<br>';
  }
?>

UPDATE

Full Code

<?php
ob_clean();session_start();

if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] == false) {
    header("Location: index.php");
}

if (isset($_GET['logout'])){
    session_destroy();  
    header("Location: index.php");
    exit(); 
}
else{
    if (isset($_GET['Username'])){  
        if (isset($_GET['Encryption'])){    
            $Username = $_GET['Username'];
            $Encryption = $_GET['Encryption'];

            if (is_dir("USERS/".$Username) === true) {
                if($Encryption == file_get_contents("USERS/".$Username."/Encryption.txt")){
                    $NoOfDocs = file_get_contents("USERS/".$Username."/NoOfDocuments.txt"); 
                }
                else{
                    header("Location: 201Error.php");exit();    
                }
            }   
            else{
                header("Location: 201Error.php");exit();    
            }
        }
    }
}
$myFile=fopen("USERS/".$Username."/AllowedOnSettings.txt","w") or exit("Can’t open file!");
fwrite($myFile, 'no');
fclose($myFile);

if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    $risk_1A1 = $_POST['tb_1A1'];
    $risk_1A2 = $_POST['tb_1A2'];
    $risk_1A3 = $_POST['tb_1A3'];
    $risk_1A4 = $_POST['tb_1A4']; 
    $risk_1A5 = $_POST['date_1A5'];
    $risk_1A6 = $_POST['date_1A6'];

    $output_date = date_parse_from_format("Y-m-d", $risk_1A5);

    echo $risk_1A1;
    echo $risk_1A2;
    echo $risk_1A3;
    echo $risk_1A4;
    date('d/m/Y', $output_date);
    echo $risk_1A6;


    $risk_2A1 = $_POST['tb_2A1'];
    $risk_2A2 = $_POST['tb_2A2'];
    $risk_2A3 = $_POST['tb_2A3'];
    $risk_2A4 = $_POST['tb_2A4'];
    $risk_2A5 = $_POST['date_2A5'];
    $risk_2A6 = $_POST['date_2A6'];

    $risk_3A1 = $_POST['tb_3A1'];
    $risk_3A2 = $_POST['tb_3A2'];
    $risk_3A3 = $_POST['tb_3A3'];
    $risk_3A4 = $_POST['tb_3A4'];
    $risk_3A5 = $_POST['date_3A5'];
    $risk_3A6 = $_POST['date_3A6'];

    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A1.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_1A1);
    fclose($myFile);
    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A2.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_1A2);
    fclose($myFile);
    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A3.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_1A3);
    fclose($myFile);
    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A4.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_1A4);
    fclose($myFile);
    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A5.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_1A5);
    fclose($myFile);
    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A6.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_1A6);
    fclose($myFile);

    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A7.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_2A1);
    fclose($myFile);
    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A8.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_2A2);
    fclose($myFile);
    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A9.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_2A3);
    fclose($myFile);
    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A10.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_2A4);
    fclose($myFile);
    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A11.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_2A5);
    fclose($myFile);
    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A12.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_2A6);
    fclose($myFile);

    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A13.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_3A1);
    fclose($myFile);
    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A14.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_3A2);
    fclose($myFile);
    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A15.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_3A3);
    fclose($myFile);
    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A16.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_3A4);
    fclose($myFile);
    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A17.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_3A5);
    fclose($myFile);
    $myFile=fopen("USERS/".$Username."/RiskAssessment"."/A18.txt","w") or exit("Can’t open file!");
    fwrite($myFile, $risk_3A6);
    fclose($myFile);

    }
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Risk Assessment</title>

        <link href="CSS/boilerplate.css" rel="stylesheet" type="text/css">
        <link href="CSS/master.css" rel="stylesheet" type="text/css">
        <link href="CSS/nav.css" rel="stylesheet" type="text/css">
        <link href="CSS/riskAssessment.css" rel="stylesheet" type="text/css">
        <script src="JAVASCRIPT/respond.min.js"></script>     
</head>
<body>
    <div id="header">
        <div id="headerTitle">
            <p>Project Archive</p>
        </div>
        <div id="nav">
            <ul>
                <li><?php echo '<a href="Home.php?isset=true&Username='.$Username.'&Encryption='.$Encryption.'">Home</a>';?></li>
                <li><?php echo'<a href="All.php?isset=true&Username='.$Username.'&Encryption='.$Encryption.'">All</a>';?></li>
                <li><?php echo'<a href="Quote.php?isset=true&Username='.$Username.'&Encryption='.$Encryption.'">Quote</a>';?></li>
                <li><?php echo'<a href="Support.php?isset=true&Username='.$Username.'&Encryption='.$Encryption.'">Support</a>';?></li>
                <li><?php echo'<a href="SettingsSecurity.php?isset=true&Username='.$Username.'&Encryption='.$Encryption.'">Settings</a>'?></li>
            </ul>
        </div>

    </div>
    <div id="search">
        <p>Search All Documents...</p>
        <form action=<?php echo '"RiskAssessmentDoc.php?isset=true&Username='.$Username.'&Encryption='.$Encryption.'"'; ?> method="post">
            <input type="text" name="search" placeholder="search" class="tbSearch">
        </form>
    </div>

    <?php echo '<a href="projectarchive.php?logout&isset=true&Username='.$Username.'&Encryption='.$Encryption.'">';?>
        <div id="divLogout">
            <table class="btnLogout">
                <tr>
                    <td>Logout</td>
                </tr>
            </table>
        </div>
    </a>

    <div id="docTitle">
        <p>Risk Assessment</p>
    </div>

    <div id="docCategory">
        <p>Health & Safety</p>
    </div>
    <div id="riskContent">
        <div id="riskForm">
            <div id="riskTop">
                <div id="riskTitle">
                    <p>Risk Assessment</p>
                </div>
                <div id="riskDate">
                    <?php echo '<p>'.date("d/m/Y").'</p>' ?>
                </div>
            </div>

            <form method="post" action=<?php echo '"RiskAssessmentDoc.php?isset=true&Username='.$Username.'&Encryption='.$Encryption.'"'; ?> autocomplete="off">
                <div id="riskNo">
                    <p>Risk No.1</p>
                </div>

                <div id="riskQ1">
                    <p>What are the Hazards?</p>
                </div>

                <div id="riskA1">
                    <textarea name="tb_1A1" cols="1" rows="2"><?php echo $risk_1A1;?></textarea>
                </div>

                <div id="riskQ2">
                    <p>What are you already doing?</p>
                </div>

                <div id="riskA2">
                    <textarea name="tb_1A2" cols="1" rows="2"><?php echo $risk_1A2;?></textarea>
                </div>

                <div id="riskQ3">
                    <p>Do you need to do anything else to control the risk?</p>
                </div>

                <div id="riskA3">
                    <textarea name="tb_1A3" cols="1" rows="2"><?php echo $risk_1A3;?></textarea>
                </div>

                <div id="riskQ4">
                    <p>Action by who?</p>
                </div>

                <div id="riskA4">
                    <textarea name="tb_1A4" cols="1" rows="2"><?php echo $risk_1A4;?></textarea>
                </div>

                <div id="riskQ5">
                    <p>Action by when</p>
                </div>

                <div id="riskA5">
                    <input type="date" name="date_1A5">
                </div>

                <div id="riskQ6">
                    <p>Done</p>
                </div>

                <div id="riskA6">
                    <input type="date" name="date_1A6">
                </div>




                <div id="riskNo">
                    <p>Risk No.2</p>
                </div>

                <div id="riskQ1">
                    <p>What are the Hazards?</p>
                </div>

                <div id="riskA1">
                    <textarea name="tb_2A1" cols="1" rows="2"><?php echo $risk_2A1;?></textarea>
                </div>

                <div id="riskQ2">
                    <p>What are you already doing?</p>
                </div>

                <div id="riskA2">
                    <textarea name="tb_2A2" cols="1" rows="2"><?php echo $risk_2A2;?></textarea>
                </div>

                <div id="riskQ3">
                    <p>Do you need to do anything else to control the risk?</p>
                </div>

                <div id="riskA3">
                    <textarea name="tb_2A3" cols="1" rows="2"><?php echo $risk_2A3;?></textarea>
                </div>

                <div id="riskQ4">
                    <p>Action by who?</p>
                </div>

                <div id="riskA4">
                    <textarea name="tb_2A4" cols="1" rows="2"><?php echo $risk_2A4;?></textarea>
                </div>

                <div id="riskQ5">
                    <p>Action by when</p>
                </div>

                <div id="riskA5">
                    <input type="date" name="date_2A5">
                </div>

                <div id="riskQ6">
                    <p>Done</p>
                </div>

                <div id="riskA6">
                    <input type="date" name="date_2A6">
                </div>




                <div id="riskNo">
                    <p>Risk No.3</p>
                </div>

                <div id="riskQ1">
                    <p>What are the Hazards?</p>
                </div>

                <div id="riskA1">
                    <textarea name="tb_3A1" cols="1" rows="2"><?php echo $risk_3A1;?></textarea>
                </div>

                <div id="riskQ2">
                    <p>What are you already doing?</p>
                </div>

                <div id="riskA2">
                    <textarea name="tb_3A2" cols="1" rows="2"><?php echo $risk_3A2;?></textarea>
                </div>

                <div id="riskQ3">
                    <p>Do you need to do anything else to control the risk?</p>
                </div>

                <div id="riskA3">
                    <textarea name="tb_3A3" cols="1" rows="2"><?php echo $risk_3A3;?></textarea>
                </div>

                <div id="riskQ4">
                    <p>Action by who?</p>
                </div>

                <div id="riskA4">
                    <textarea name="tb_3A4" cols="1" rows="2"><?php echo $risk_3A4;?></textarea>
                </div>

                <div id="riskQ5">
                    <p>Action by when</p>
                </div>

                <div id="riskA5">
                    <input type="date" name="date_3A5">
                </div>

                <div id="riskQ6">
                    <p>Done</p>
                </div>

                <div id="riskA6">
                    <input type="date" name="date_3A6">
                </div>

                <div class="center" onclick="javascript:this.parentNode.submit();">
                    <span>Send</span>
                </div>
            </form>
        </div>        
    </div>
</body>
</html>
Matt Hutch
  • 453
  • 1
  • 6
  • 20
  • 1. without submit button posting data through hitting enter is not good at all ? 2. it's works perfectly at my end:- http://prntscr.com/cleuaz and http://prntscr.com/cleujp and http://prntscr.com/cleupo . I did it on single page – Alive to die - Anant Sep 23 '16 at 12:23
  • There is a submit button in my project this was simply an example to give an in site as to what might be going wrong. – Matt Hutch Sep 23 '16 at 12:38

3 Answers3

1

You can do the following, I explained it in the comments, you can reformat the dates to your needs in the following code, The formatting may vary, but change the input format and the output format to your needs.

if (isset($_POST['date'])) {

    // Get the date
    $input = $_POST['date'];

    // Create a DateTime object from the input
    $date = DateTime::createFromFormat('Y-m-d', $input);

    // Format it to your needs
    $formatted = $date->format('d-m-Y');

    // Echo it out
    echo $formatted 
}
Akar
  • 5,075
  • 2
  • 25
  • 39
  • 1
    Great example, and thanks for using the DateTime object. Not a lot of those going around. Definitely the better way to go. – Pim Broens Sep 23 '16 at 13:02
  • For some odd reason this is giving me an error " Call to a member function format() on a non-object" any ideas as to why this is? – Matt Hutch Sep 23 '16 at 13:28
1

It's because you're using type="date" (https://www.w3.org/TR/html-markup/input.date.html), it is supposed to return the date in format yyyy-mm-dd (read it like Y-m-d).
You can input it in another format, I think it's related to the browser locale, but it will save the value in the format it is meant to output it.

There is no way you can change this behavior (Is there any way to change input type="date" format?).

If you want to show it back in another format, you may elaborate it on the php side using something like

$output_date = date_parse_from_format("Y-m-d", $input_date);

Then it will be a normal php date() you can show with date('d/m/Y', $output_date).

UPDATE

Sorry, my typo. date_parse_from_format() gives you an array with splitted date.

Simplier solution:

Parse it with

$output_date = date_create_from_format("Y-m-d", $risk_1A5);

then reconvert it to a string with

date_format($output_date, 'd/m/Y');

Example Input

print_r($date = date_create_from_format("Y-m-d", "2016-12-21"));

var_dump(date_format($date, 'Y-m-d'));

Outputs

DateTime Object
(
    [date] => 2016-12-21 14:19:44.000000
    [timezone_type] => 3
    [timezone] => UTC
)

string(10) "2016-12-21"
Community
  • 1
  • 1
phaberest
  • 3,140
  • 3
  • 32
  • 40
0

This is not an error, the representation of a date is not the same a it's value.

The application (browser) may render the value in the way that is appropriate depending on country/OS/system configuration etc.

It means the user sees the value in the format that is probably common to him/her. That format may differ from the output of your PHP dump, which is formatted on the server.

Kwebble
  • 2,065
  • 14
  • 23