如何只获取日期字符串的年份部分?

问题描述

| 我有这样的用户输入日期:
1979-06-13
现在,我想比较一下年份:
foreach ($list as $key) {
    $year = 1979;
    if ($key > $year) { //only the year
        echo (error);
        }
}
我怎样才能只获得一年? 谢谢     

解决方法

        与
strtok
$year = strtok($date,\'-\');
如果希望年份为整数,则还可以使用
intval
$year = intval($date);
    ,        可能更昂贵,但可能更灵活,请使用strtotime()转换为时间戳,并使用date()提取所需日期的一部分。
$year = date(\'Y\',strtotime($in_date));
    ,        这是一种简单而精确的方法。
//suppose
$dateProvided=\"1979-06-13\";
//get first 4 characters only
$yearOnly=substr($dateProvided,4);
echo $yearOnly;
//1979
还有一点要知道,在某些情况下(例如,当日期类似于2010-00-00时,date函数无法按预期运行),它将返回2009而不是2010。 这是一个例子
//suppose
$dateProvided=\"2010-00-00\";
$yearOnly = date(\'Y\',strtotime($dateProvided));
//we expect year to be 2010 but the value of year would be 2009
echo $yearOnly;
//2009
    ,        您可能会炸开日期。
$inputDate = \"1979-06-13\";
$myDate = 1979;
$datePieces = explode(\"-\",$inputDate);
if (intval($datePieces[0]) > $myDate){
  echo \"error\";
};
http://php.net/manual/zh/function.explode.php     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...