(Attention: Green PHP newbie !)
I have an online inquiry form, delivering a date in the form yyyy/mm/dd to my feedback form. If the content passes several checks, the form sends an e-mail to me. All works fine. I just would like to receive the date in the form dd/mm/yyyy. I tried with some code, copied from a forum, but it resolves in a parse error. To make clear what I mean, I better insert the code, which is stripped down to 2 fields ('data_start' and 'data_end'). Can anyone please advise how to do and where to insert such a date conversion in this code below ?
Thanks a lot !
Here is the code: (my modification from line 39 to 47)
Code:
<?php
session_start();
// ------------- CONFIGURABLE SECTION ------------------------
$mailto = 'xxx@xxx' ;
$subject = "Inquiry Form" ;
$formurl = "the contact.php form" ;
$errorurl = "the error message .htm" ;
$thankyouurl = "the thank-you message .htm" ;
// -------------------- END OF CONFIGURABLE SECTION ---------------
// load the variables form address bar
$data_start = $_POST['data_start'] ;
$data_end = $_POST['data_end'] ;
// etc.
// remove the backslashes that normally appears when entering " or '
$data_start = stripslashes($data_start);
$data_end = stripslashes($data_end);
// etc.
$http_referrer = getenv( "HTTP_REFERER" );
if (!isset($_POST['email'])) {
header("Location: $formurl" );
exit ;
}
// all fields are empty : arrival, departure, pax and comments ==> error
if(empty($data_start) && empty($data_end) && empty($pax)&& empty($comment)){
exit("You have not specified any booking details");
exit;
}
$arrive = explode($_POST['$data_start'],"/");
$arrive[0] =yyyy
$arrive[1] =mm
$arrive[2] =dd
// swap round
$data_start = sprintf("%s/%s/%s",$arrive[2],$arrive[1],$arrive[0]);
}
if ( ereg( "[\r\n]", $name ) || ereg( "[\r\n]", $email ) ) {
header("Location: $errorurl" );
exit ;
}
if (!isset($_POST['email'])) {
header("Location: $formurl" );
exit ;
}
$messageproper =
"This message was sent from:\n" .
"$http_referrer\n\n" .
"------------------------- COMMENTS -------------------------\n\n" .
"Date of Arrival: " .
"$data_start\n" .
"Date of Departure: " .
"$data_end\n" .
"\n\n---------------- END OF MESSAGE -----------------\n" ;
mail($mailto, $subject, $messageproper, "From: \"$name\" <$email>\r\nReply-To: \"$name\" <$email>\r\nX-Mailer: chfeedback.php 2.04" );
header( "Location: $thankyouurl" );
// delete the cookie so it cannot sent again by refreshing this page
setcookie('tntcon','');
exit;
// if verification code was incorrect then return to contact page and show error
header("location:contact.php?Title=$Title&name=$name&email=$email&phone=$phone&fax=$fax&nationality=$nationality&data_start=$data_start&data_end=$data_end&result=$result&pax=$pax&children=$children&payment=$payment&appick=$appick&purpose=$purpose&comment=$comment&wrong_code=true");
exit;
} else {
echo "You entered a wrong verification code. Please go back and try again.";
exit ;
}
?>
I want to change a date from format dd-mmm-yyyy to mm/dd/yyyy. Is there a way to do this with sed or do you have to write a case statement to convert JAN to 01? Thanks (9 Replies)
How to convert the date field from dd/mm/yyyy to yyyy/mm/dd in unix
my script will generate text file which have two fields
one is date and another is name of the server for example this is sample date which I have to sort based on older to newer date the problem is when I found out sort will... (4 Replies)
I have a file with some date columns in MM/DD/YYYY format:
SMPBR|DUP-DO NOT USE|NEW YORK||16105|BA5270715|6/6/2007 |MWERNER|109||||JOHN||SMITH|MD|72211118||||||74559|21 WILMINGTON RD||D|11/6/2003|SL# MD CONTACT-LIZ RICHARDS|||0|Y|N||1411458|
And I want to convert the date format to:
... (5 Replies)
Hello,
I am writing a script that parses different logs and produces one. In the source files, the date is in DD MM YYYY HH24:MI:SS format. In the output, it should be in DD MON YYY HH24:MI:SS (ie 25 Jan 2010 16:10:10)
To extract the dates, I am using shell substrings, i.e.:
read line
... (4 Replies)
could you please help be on the below code ..
Requirement is when i pass the parameter(for below 2) i should get current time -2 hours in the format :wall:..
cur_dt=`$ICEBIN/sqsh -S$DSQUERY -U $BATCHID -P $PASSWD -h -C"select getdate()" | sed '2d'`
pr_dt="`$ICEBIN/sqsh -S$DSQUERY -U $BATCHID... (2 Replies)
Hi,
I am having one log files. contains som data according to date. And it is going to append .Eg:abc.log contains below data
2011-10-19 abjhgj
2011-10-19 gjhgjgj
2011-10-20 hhhjh
2011-10-20 hhhhjj
2011-10-21 gg
.
.
.
2011-11-24 yyy
from log files i want catch only... (2 Replies)
I've seen a lot of posts on this and have tried the following:
echo 1257000000| perl -e '($d,$m,$y)=(localtime(time-86400));$m+=1;$y+=1900;printf "$y/$m/$d\n";'
But I am unable to convert a past Epoch date into a format such as YYYY/MM/DD or MM/DD/YYYY.
I am using bash and don't know... (4 Replies)
I am changing epoch times to dates. I was able to do the following:
echo "$varx" | gawk '{print strftime("%c", $0)}'
Mon Dec 31 16:26:40 2012
This changes the epoch date (which is what varx is) into localtime.
However, my problem is that I only want 12/31/2012 and not the Mon Dec 31... (2 Replies)
I am getting output of YYYY-MM-DD and want to change this to DD/MM/YYYY.
When am running the query in 'Todd' to_date(column_name,'DD/MM/YYYY') am getting the required o/p of DD/MM/YYYY, But when am executing the same query(Netezza) in linux server(bash) am getting the output of YYYY-MM-DD
file... (3 Replies)
Hi All,
I have line
,A,FDRM0002,12/21/2017,,0.961751583,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
it contains date in mm/dd/yyyy format i want to change this to yyyymmdd format using perl.
Use code tags, thanks. (8 Replies)
Discussion started by: vishal0746
8 Replies
LEARN ABOUT SUSE
time::parsedate
Time::ParseDate(3) User Contributed Perl Documentation Time::ParseDate(3)NAME
Time::ParseDate -- date parsing both relative and absolute
SYNOPSIS
use Time::ParseDate;
$seconds_since_jan1_1970 = parsedate("12/11/94 2pm", NO_RELATIVE => 1)
$seconds_since_jan1_1970 = parsedate("12/11/94 2pm", %options)
OPTIONS
Date parsing can also use options. The options are as follows:
FUZZY -> it's okay not to parse the entire date string
NOW -> the "current" time for relative times (defaults to time())
ZONE -> local timezone (defaults to $ENV{TZ})
WHOLE -> the whole input string must be parsed
GMT -> input time is assumed to be GMT, not localtime
UK -> prefer UK style dates (dd/mm over mm/dd)
DATE_REQUIRED -> do not default the date
TIME_REQUIRED -> do not default the time
NO_RELATIVE -> input time is not relative to NOW
TIMEFIRST -> try parsing time before date [not default]
PREFER_PAST -> when year or day of week is ambigueous, assume past
PREFER_FUTURE -> when year or day of week is ambigueous, assume future
SUBSECOND -> parse fraction seconds
VALIDATE -> only accept normal values for HHMMSS, YYMMDD. Otherwise
days like -1 might give the last day of the previous month.
DATE FORMATS RECOGNIZED
Absolute date formats
Dow, dd Mon yy
Dow, dd Mon yyyy
Dow, dd Mon
dd Mon yy
dd Mon yyyy
Month day{st,nd,rd,th}, year
Month day{st,nd,rd,th}
Mon dd yyyy
yyyy/mm/dd
yyyy-mm-dd (usually the best date specification syntax)
yyyy/mm
mm/dd/yy
mm/dd/yyyy
mm/yy
yy/mm (only if year > 12, or > 31 if UK)
yy/mm/dd (only if year > 12 and day < 32, or year > 31 if UK)
dd/mm/yy (only if UK, or an invalid mm/dd/yy or yy/mm/dd)
dd/mm/yyyy (only if UK, or an invalid mm/dd/yyyy)
dd/mm (only if UK, or an invalid mm/dd)
Relative date formats:
count "days"
count "weeks"
count "months"
count "years"
Dow "after next"
Dow "before last"
Dow (requires PREFER_PAST or PREFER_FUTURE)
"next" Dow
"tomorrow"
"today"
"yesterday"
"last" dow
"last week"
"now"
"now" "+" count units
"now" "-" count units
"+" count units
"-" count units
count units "ago"
Absolute time formats:
hh:mm:ss[.ddd]
hh:mm
hh:mm[AP]M
hh[AP]M
hhmmss[[AP]M]
"noon"
"midnight"
Relative time formats:
count "minutes" (count can be franctional "1.5" or "1 1/2")
count "seconds"
count "hours"
"+" count units
"+" count
"-" count units
"-" count
count units "ago"
Timezone formats:
[+-]dddd
GMT[+-]d+
[+-]dddd (TZN)
TZN
Special formats:
[ d]d/Mon/yyyy:hh:mm:ss [[+-]dddd]
yy/mm/dd.hh:mm
DESCRIPTION
This module recognizes the above date/time formats. Usually a date and a time are specified. There are numerous options for controlling
what is recognized and what is not.
The return code is always the time in seconds since January 1st, 1970 or undef if it was unable to parse the time.
If a timezone is specified it must be after the time. Year specifications can be tacked onto the end of absolute times.
If "parsedate()" is called from array context, then it will return two elements. On sucessful parses, it will return the seconds and what
remains of its input string. On unsucessful parses, it will return "undef" and an error string.
EXAMPLES
$seconds = parsedate("Mon Jan 2 04:24:27 1995");
$seconds = parsedate("Tue Apr 4 00:22:12 PDT 1995");
$seconds = parsedate("04.04.95 00:22", ZONE => PDT);
$seconds = parsedate("Jan 1 1999 11:23:34.578", SUBSECOND => 1);
$seconds = parsedate("122212 950404", ZONE => PDT, TIMEFIRST => 1);
$seconds = parsedate("+3 secs", NOW => 796978800);
$seconds = parsedate("2 months", NOW => 796720932);
$seconds = parsedate("last Tuesday");
$seconds = parsedate("Sunday before last");
($seconds, $remaining) = parsedate("today is the day");
($seconds, $error) = parsedate("today is", WHOLE=>1);
AUTHOR
David Muir Sharnoff <muir@idiom.com>.
LICENSE
Copyright (C) 1996-2006 David Muir Sharnoff. License hereby granted for anyone to use, modify or redistribute this module at their own
risk. Please feed useful changes back to muir@idiom.com.
perl v5.12.1 2006-08-15 Time::ParseDate(3)