I wrote a code that converts the date format using preg_replace. It's the following code:
$pattern=array(
"#Y#",//full year
"#y#",//short year
"#M#",//month short name
"#F#",//month full name
"#m#",//month number 0 lead
"#n#",//month number
"#t#",//days in month
"#l#",//full week day
"#D#",//short week day
"#d#",//day number of month
"#j#",//day number of month
"#a#",//AM/PM short view
"#A#",//AM/PM full view
);
$replace=array(
$d->ENnum2FA($converted[0]),//year 13xx
$d->ENnum2FA(substr($converted[0],2),true),//year xx lead zero
$d->shmonths[$converted[1]],//month name
$d->months[$converted[1]],//month name
$d->ENnum2FA($converted[1],true), //month number
$d->ENnum2FA($converted[1]), //month number
//$converted[1],
$d->j_days_in_month[$converted[1]],
$d->days[strtolower(gmdate("D",$stamp))],//week day {full view}
$d->ldays[strtolower(gmdate("D",$stamp))],//week day {short view}
$d->ENnum2FA($converted[2],true),//day of month
$d->ENnum2FA($converted[2],true),//day of month
$d->pmam[gmdate('a',$stamp)],
$d->pmam[gmdate('A',$stamp)],
);
// $format = "Y/m/d"; example
$date= preg_replace($pattern,$replace,$format);
It changes the date format perfectly ,but the problem is that it outputs the time as H:i:s instead of the time value! For example the output is 1398/5/21, H:i:s instead of 1398/5/21, 22:15:36. So, I added the following code:
$time_f = preg_replace_callback(
"#([His])#",
function ($matches) {
return(gmdate($matches[1],$stamp));
},
$date
);
It solved the problem. But Now it shows the time always as: 00:00:00 For example: 1398/5/21, 00:00:00
How can I solve the problem?