【问题标题】:How to remove (YYYY) from date-string in PHP?如何从 PHP 中的日期字符串中删除 (YYYY)?
【发布时间】:2014-01-10 12:21:36
【问题描述】:

我正在制作一个记住用户生日的函数,并将生日以这种格式“08/12/1988”存储在我的数据库中。

现在如何删除“YYYY”,这样我就只有日和月了? 08/12

因为这样我就可以做出这样的 if 语句:

这不起作用:

$date_today = date("d-m");

if($string_from_db_without_year == $date_today){
   echo"Congrats, it's your birthday!";
}

成功了:

    $string_from_db = $bruger_info_profil['birthday'];
    $date = strtotime($string_from_db);
    $converted_date_from_db = date('m/d',$date);

        echo $converted_date_from_db;

【问题讨论】:

  • 那个日期格式是MM/DD/YYYY还是DD/MM/YYYY
  • DD/MM/YYYY - 丹麦/欧洲时间格式 :-)
  • 您是否真的将数据库中的日期存储在 varchar 列中?
  • 是吗?这有什么问题?
  • 问题在于,如果您想在某个时间点执行“向用户显示本周/月的生日”之类的操作,它会增加复杂性……您的数据库提供了一个非常好的日期/时间数据类型处理日期,这简化了许多基于“范围”或“格式”的查询,而如果您使用 varchar,那么您将来需要做类似“艰难的方式”的事情

标签: php string date


【解决方案1】:
<?php
$date = strtotime('08/12/1988');
echo date('d/m',$date);
?>

【讨论】:

  • 只需要切换 date('d/m',$date) 到 date('m/d',$date) .. 出于某种原因:D
【解决方案2】:

尝试:

$input  = '08/12/1988';
$output = date('d-m', strtotime($input));

【讨论】:

  • 但是会输出8-December,还是12-August
  • strtotime 假定 MM/DD/YYYY 因为斜线所以 12-08
【解决方案3】:
$time = strtotime( "08/12/1988");
$birthday = date("d-m", $time);

或者

list($month, $day, $year) = explode('/', "08/12/1988");
$birthday = $day.'-'.$month;

【讨论】:

    猜你喜欢
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多