You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中是否有比较年份的函数?如何判断created_at跨年度?

判断数据库记录created_at年份与当前年份是否不同的方法

直接SQL查询实现

根据你使用的数据库类型,用对应的年份提取函数与当前年份对比,直接返回布尔结果:

MySQL/MariaDB

SELECT YEAR(created_at) != YEAR(CURDATE()) AS is_different_year FROM your_table WHERE id = [记录ID];

查询返回1(代表true)或0(代表false),可直接用于条件判断。

PostgreSQL

SELECT EXTRACT(YEAR FROM created_at) != EXTRACT(YEAR FROM CURRENT_DATE) AS is_different_year FROM your_table WHERE id = [记录ID];

直接返回标准布尔值true或false。

SQLite

SELECT STRFTIME('%Y', created_at) != STRFTIME('%Y', 'now') AS is_different_year FROM your_table WHERE id = [记录ID];

返回1或0,可直接当作布尔值使用。

ORM框架实现

如果用ORM框架开发,可直接通过框架的查询构造器快速获取布尔结果:

Laravel Eloquent

直接查询判断

$isDifferentYear = YourModel::where('id', [记录ID])->whereYear('created_at', '!=', now()->year)->exists();

exists()方法直接返回true或false,完美适配if-else条件判断。

实例化后判断

$model = YourModel::find([记录ID]);
$isDifferentYear = $model->created_at->year != now()->year;

Django ORM

直接查询判断

from django.utils import timezone
from your_app.models import YourModel

is_different_year = YourModel.objects.filter(id=[记录ID]).exclude(created_at__year=timezone.now().year).exists()

exists()返回布尔值,直接用于条件分支。

实例化后判断

from django.utils import timezone
from your_app.models import YourModel

model = YourModel.objects.get(id=[记录ID])
is_different_year = model.created_at.year != timezone.now().year

后端代码手动判断

如果已经把created_at字段读取到代码中,也可以直接在业务代码里对比年份:

PHP

// 假设$createdAt是从数据库取出的日期字符串或DateTime对象
$createdYear = is_string($createdAt) ? date('Y', strtotime($createdAt)) : $createdAt->format('Y');
$currentYear = date('Y');
$isDifferentYear = $createdYear != $currentYear; // 返回true/false

Python

from datetime import datetime

# 假设created_at是从数据库取出的datetime对象或字符串
if isinstance(created_at, str):
    created_at = datetime.strptime(created_at, '%Y-%m-%d %H:%M:%S')
current_year = datetime.now().year
is_different_year = created_at.year != current_year

内容的提问来源于stack exchange,提问作者Amirul Yunus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 01:27:15