我的问题如下。我正在将几个月转换为西班牙语,例如:
04 = 四月,05 = 五月,依此类推。
我将日期数据从表中带到日期类型字段中,这给我带来了这个2018-04-22.
我用 将这些数据分成 3explode
份,因为我必须在证书中分别显示日、月和年。
但是月份的值我必须用字母而不是数字来表示,为此我做了这个函数:
function FechaCastellano($date){
$mes_ = date('F', strtotime($date));
$_ES = array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
$_EN = array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
$nombreMes = str_replace($_EN, $_ES, $mes_);
return $nombreMes;
}
问题是它正在打印 me ENERO
,而日期的月份是04
,即四月。我在这里回显了$mes
我传递给函数的变量:
$mes_ES = FechaCastellano($mes);
确实它包含一个 04,但它在一月份打印我,我真的不知道为什么。
我从中得到 $month 变量:
$fecha_examen = explode("-",$funcion[$key]['fecha_examen']);
$dia = $fecha_examen[2];
$mes = $fecha_examen[1];
$year = $fecha_examen[0];
这是我将日期分成 3 的地方,以便我可以分别打印每个数据。但问题是它不会在我以数字形式传递它的月份以字母形式打印。
@DevJoel 为您提供了代码未按预期工作的原因。
阅读暴露的问题,我将创建一个
clase
实用程序(用于我自己的库),并管理一个DateTime
. 它的灵活性将为这个类提供一个独特的范围,这可能对未来的其他事情有用,例如翻译日期的名称、日期的完整表示、根据你的喜好等等。使用 提供的工具,该类还可以合并
DateTime
先前对字符串的验证,它将作为构造函数中的参数接收。简而言之,它本身就是一个可以在任何应用程序中安全使用的对象。这将是该类的简化示例:
VER DEMO
测试代码:
结果:
问题很简单,该函数
strtotime
需要一个字符串格式的日期作为参数,这就是你的错误所在,因为它没有传递这个,而只是传递了月份的值"04"
。因此,到目前为止,还有一个不必要的额外步骤,因为如果您直接传递日期而不执行它,它将
explode
起作用(不修改其功能)Demo
如果您想继续使用
explode
,则不必同时使用它们,arrays
只需一个就足够了,因为您将直接传递月份的索引来获取。Demo
除了上述之外,我添加了在 Linux Ubuntu 服务器中配置语言环境的方式
看房
生成语言环境(需要 root)
一旦生成,它就可以在 PHP 中使用
结果: