---
order: 5
---

# ⚓ 获取前后时间戳

## beforeMinute()

### 获取指定时间 N 分钟前的时间戳

#### 参数

|   参数   |                       描述                        |       是否必须       |
| :------: | :-----------------------------------------------: | :------------------: |
|  minute  |                      分钟数                       | 可选, 默认为 1 分钟  |
| datetime | 从指定时间开始计算 (任意类型的字符串时间或时间戳) | 可选, 默认为当前时间 |
|  round   |  是否取整,如果为 true,则从该分钟的 0 秒开始计算   |  可选, 默认为 false  |

#### 返回值

> 从指定之间开始计算,N 分钟前的时间戳

#### 示例代码

```php
/* 获取指定时间3分钟前0秒的时间戳 */
TimeHelper::beforeMinute(3,'2022-3-2 10:15:33',true);
// 1646187120

/* 获取指定时间10分钟前的时间戳 */
TimeHelper::beforeMinute(10,'2022-3-2 10:15:33');
// 1646186733

/* 获取5分钟前的时间戳 */
TimeHelper::beforeMinute(5);
// 1698734495
```

## afterMinute()

### 获取指定时间 N 分钟后的时间戳

#### 参数

|   参数   |                       描述                        |       是否必须       |
| :------: | :-----------------------------------------------: | :------------------: |
|  minute  |                      分钟数                       | 可选, 默认为 1 分钟  |
| datetime | 从指定时间开始计算 (任意类型的字符串时间或时间戳) | 可选, 默认为当前时间 |
|  round   |  是否取整,如果为 true,则从该分钟的 0 秒开始计算   |  可选, 默认为 false  |

#### 返回值

> 从指定之间开始计算,N 分钟后的时间戳

#### 示例代码

```php
/* 获取指定时间20分钟后的时间戳 */
TimeHelper::afterMinute(20,'2022-3-2 10:15:33');
// 1646188533

/* 获取1分钟后的时间戳 */
TimeHelper::afterMinute();
// 1698734495
```

## beforeHour()

### 获取指定时间 N 小前的时间戳

#### 参数

|   参数   |                        描述                         |       是否必须       |
| :------: | :-------------------------------------------------: | :------------------: |
|   hour   |                       小时数                        | 可选, 默认为 1 小时  |
| datetime |  从指定时间开始计算 (任意类型的字符串时间或时间戳)  | 可选, 默认为当前时间 |
|  round   | 是否取整,如果为 true,则从该小时的 0 分 0 秒开始计算 |  可选, 默认为 false  |

#### 返回值

> 从指定之间开始计算,N 小时前的时间戳

#### 示例代码

```php
/* 获取3小时前的0分0秒开始计算的时间戳 */
TimeHelper::beforeHour(3,null,true);
// 1698734495

/* 获取指定时间1小时前的时间戳(请注意此处为php8之后的用法) */
TimeHelper::beforeHour(datetime:'Apr 11, 2020');
// 1586534400
```

## afterHour()

### 获取指定时间 N 小后的时间戳

#### 参数

|   参数   |                        描述                         |       是否必须       |
| :------: | :-------------------------------------------------: | :------------------: |
|   hour   |                       小时数                        | 可选, 默认为 1 小时  |
| datetime |  从指定时间开始计算 (任意类型的字符串时间或时间戳)  | 可选, 默认为当前时间 |
|  round   | 是否取整,如果为 true,则从该小时的 0 分 0 秒开始计算 |  可选, 默认为 false  |

#### 返回值

> 从指定之间开始计算,N 小时后的时间戳

#### 示例代码

```php
/* 返回2小时后的时间戳 */
TimeHelper::afterHour(2);
// 1698734495
```

## beforeDay()

### 获取指定时间 N 天前的时间戳

#### 参数

|   参数   |                          描述                          |       是否必须       |
| :------: | :----------------------------------------------------: | :------------------: |
|   day    |                          天数                          |  可选, 默认为 1 天   |
| datetime |   从指定时间开始计算 (任意类型的字符串时间或时间戳)    | 可选, 默认为当前时间 |
|  round   | 是否取整,如果为 true,则从该天的 0 点 0 分 0 秒开始计算 |  可选, 默认为 false  |

#### 返回值

> 从指定之间开始计算,N 天前的时间戳

#### 示例代码

```php
/* 获取15天前0点的时间戳 */
TimeHelper::beforeDay(15,null,true);
// 1698734495

/* 获取指定时间3天前的时间戳 */
TimeHelper::beforeDay(3,1698734495);
// 1698475295
```

## afterDay()

### 获取指定时间 N 天后的时间戳

#### 参数

|   参数   |                          描述                          |       是否必须       |
| :------: | :----------------------------------------------------: | :------------------: |
|   day    |                          天数                          |  可选, 默认为 1 天   |
| datetime |   从指定时间开始计算 (任意类型的字符串时间或时间戳)    | 可选, 默认为当前时间 |
|  round   | 是否取整,如果为 true,则从该天的 0 点 0 分 0 秒开始计算 |  可选, 默认为 false  |

#### 返回值

> 从指定之间开始计算,N 天后的时间戳

#### 示例代码

```php
/* 获取15天后的时间戳 */
TimeHelper::afterDay(15);
// 1698483295
```

## beforeWeek()

### 获取指定时间 N 周前的时间戳

#### 参数

|   参数   |                            描述                            |       是否必须       |
| :------: | :--------------------------------------------------------: | :------------------: |
|   week   |                            周数                            |  可选, 默认为 1 周   |
| datetime |     从指定时间开始计算 (任意类型的字符串时间或时间戳)      | 可选, 默认为当前时间 |
|  round   | 是否取整,如果为 true,则从该周的周一 0 点 0 分 0 秒开始计算 |  可选, 默认为 false  |

#### 返回值

> 从指定之间开始计算,N 周前的时间戳

#### 示例代码

```php
/* 获取指定时间2周前的时间戳 */
TimeHelper::beforeWeek(2,'2022-4-24 23:01:11');
// 1649602871

/* 获取指定时间2周前0点0分0秒开始计算的时间戳 */
TimeHelper::beforeWeek(2,null,true);
// 1649602871
```

## afterWeek()

### 获取指定时间 N 周后的时间戳

#### 参数

|   参数   |                            描述                            |       是否必须       |
| :------: | :--------------------------------------------------------: | :------------------: |
|   week   |                            周数                            |  可选, 默认为 1 周   |
| datetime |     从指定时间开始计算 (任意类型的字符串时间或时间戳)      | 可选, 默认为当前时间 |
|  round   | 是否取整,如果为 true,则从该周的周一 0 点 0 分 0 秒开始计算 |  可选, 默认为 false  |

#### 返回值

> 从指定之间开始计算,N 周后的时间戳

#### 示例代码

```php
/* 获取一周后的时间戳 */
TimeHelper::afterWeek();
// 1698734495
```

## beforeMonth()

### 获取指定时间 N 月前的时间戳

#### 参数

|   参数   |                            描述                             |       是否必须       |
| :------: | :---------------------------------------------------------: | :------------------: |
|  month   |                            月数                             | 可选, 默认为 1 个月  |
| datetime |      从指定时间开始计算 (任意类型的字符串时间或时间戳)      | 可选, 默认为当前时间 |
|  round   | 是否取整,如果为 true,则从该月的 1 日 0 点 0 分 0 秒开始计算 |  可选, 默认为 false  |

#### 返回值

> 从指定之间开始计算,N 月前的时间戳

#### 示例代码

```php
/* 获取以下时间1个月前的时间戳(请注意此处为php8之后的用法) */
TimeHelper::beforeMonth(datetime:1646360133);
// 1643940933

/* 获取2个月前1日0点0分的时间戳 */
TimeHelper::beforeMonth(2,null,true);
// 1698734495

/* 获取3个月前的时间戳 */
TimeHelper::beforeMonth(3);
// 1698624481
```

## afterMonth()

### 获取指定时间 N 月后的时间戳

#### 参数

|   参数   |                            描述                             |       是否必须       |
| :------: | :---------------------------------------------------------: | :------------------: |
|  month   |                            月数                             | 可选, 默认为 1 个月  |
| datetime |      从指定时间开始计算 (任意类型的字符串时间或时间戳)      | 可选, 默认为当前时间 |
|  round   | 是否取整,如果为 true,则从该月的 1 日 0 点 0 分 0 秒开始计算 |  可选, 默认为 false  |

#### 返回值

> 从指定之间开始计算,N 月后的时间戳

#### 示例代码

```php
/* 获取5个月后的时间戳 */
TimeHelper::afterMonth(5);
// 1698734495

/* 获取下个月1日0点0分的时间戳(请注意此处为php8之后的用法) */
TimeHelper::afterMonth(round:true);
// 1643940933
```

## beforeYear()

### 获取指定时间 N 年前的时间戳

#### 参数

|   参数   |                               描述                               |       是否必须       |
| :------: | :--------------------------------------------------------------: | :------------------: |
|   year   |                               年数                               |  可选, 默认为 1 年   |
| datetime |        从指定时间开始计算 (任意类型的字符串时间或时间戳)         | 可选, 默认为当前时间 |
|  round   | 是否取整,如果为 true,则从该年的 1 月 1 日 0 点 0 分 0 秒开始计算 |  可选, 默认为 false  |

#### 返回值

> 从指定之间开始计算,N 年前的时间戳

#### 示例代码

```php
/* 获取指定时间3年前的时间戳 */
TimeHelper::beforeYear(3,'2022-7-11');
// 1562774400

/* 获取明年1月1日0点0分0秒的时间戳 */
TimeHelper::beforeYear(0,null,true);
// 1640995200
```

## afterYear()

### 获取指定时间 N 年后的时间戳

#### 参数

|   参数   |                               描述                               |       是否必须       |
| :------: | :--------------------------------------------------------------: | :------------------: |
|   year   |                               年数                               |  可选, 默认为 1 年   |
| datetime |        从指定时间开始计算 (任意类型的字符串时间或时间戳)         | 可选, 默认为当前时间 |
|  round   | 是否取整,如果为 true,则从该年的 1 月 1 日 0 点 0 分 0 秒开始计算 |  可选, 默认为 false  |

#### 返回值

> 从指定之间开始计算,N 年后的时间戳

#### 示例代码

```php
/* 获取2年后的时间戳 */
TimeHelper::afterYear(2);
// 1698734495
```
