$name = $_POST['name'];
$email = $_POST['email'];
$reciver = '/* Reciver Email address */';
if (filter_var($reciver, FILTER_VALIDATE_EMAIL)) {
$subject = $name;
// To send HTML mail, the Content-type header must be set.
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From:' . $email. "\r\n"; // Sender's Email
//$headers .= 'Cc:' . $email. "\r\n"; // Carbon copy to Sender
$template = '<div style="padding:50px; color:white;">Hello ,<br/>'
. '<br/><br/>'
. 'Name:' .$name.'<br/>'
. 'Email:' .$email.'<br/>'
. '<br/>'
. '</div>';
$sendmessage = "<div style=\"background-color:#7E7E7E; color:white;\">" . $template . "</div>";
// Message lines should not exceed 70 characters (PHP rule), so wrap it.
$sendmessage = wordwrap($sendmessage, 70);
// Send mail by PHP Mail Function.
mail($reciver, $subject, $sendmessage, $headers);
echo "Your Query has been received, We will contact you soon.";
} else {
echo "<span>* invalid email *</span>";
}
Я пробовал свой код, и он дает мне нуль за 2022 год, но в 2018 году 2020 года он дает Apr ... weird!
NSString *dateString=@"2022-04-01";
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate* myDate = [dateFormatter dateFromString:dateString];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"+5:30"]];
[dateFormatter setDateFormat:@"MMM"];
NSString *stringFromDate = [dateFormatter stringFromDate:myDate];
NSLog(@"%@ == %@",dateString,stringFromDate);
UPDATE:
Пожалуйста, проанализируйте строку следующим образом: 2016-04-01 01:00
Из-за летнего времени в Иордании часы будут сдвинуты на +1 час, поэтому нет времени во вселенной, как это: 2016-04-01 00:00
Это должно разрешить проблемы с ur с объектом nil.
Это, вероятно, проблема в вашем часовом поясе. Обратите внимание, что при анализе даты без времени предполагается, что время равно нулю. Однако некоторые конкретные времена не существуют, как правило, из-за изменения времени перехода на летнее время (которые происходят в марте по всему миру) или из-за конкретных локальных изменений времени.
Например, в Иордании изменение DST Apr 1 2016, 00:00 => Apr 1 2016, 01:00
. Это означает, что время Apr 1 2016, 00:00
не существует, потому что March 31 2016, 23:59
становится немедленно Apr 1 2016, 01:00
. Если дата не существует, форматировщик даты должен возвращать nil
.
Обычно вы можете исправить эту проблему, используя предустановленный часовой пояс GMT, который не имеет этой проблемы, например
dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
или
dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:[NSTimeZone systemTimeZone].secondsFromGMT];
Обратите внимание, что поскольку вы не занимаетесь анализом времени, различия в часовых поясах не должны влиять на вас.
Шаги по воспроизведению
Установите часовой пояс на вашей машине в иорданский часовой пояс:
NSString *dateString = @"2016-04-01";
NSDateFormatter* parsingFormatter = [[NSDateFormatter alloc] init];
parsingFormatter.dateFormat = @"yyyy-MM-dd";
NSLog(@"Parsed: %@", [parsingFormatter dateFromString:dateString]); // "(null)"
с исправлением часового пояса:
NSString *dateString = @"2016-04-01";
NSDateFormatter* parsingFormatter = [[NSDateFormatter alloc] init];
parsingFormatter.dateFormat = @"yyyy-MM-dd";
parsingFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
NSLog(@"Parsed: %@", [parsingFormatter dateFromString:dateString]); // "2016-04-01 00:00:00 +0000"
NSDateFormatter
, а это означает использование NSDate
. Разумеется, потребуется использовать тот же часовой пояс для обоих форматировщиков.
– Sulthan
31 March 2016 в 12:48
[NSTimeZone timeZoneForSecondsFromGMT:0];
в ответ на sulthan, попробуйте один раз – Anbu.karthik 31 March 2016 в 11:40