PHPackages                             lukeyouell/craft-readtime - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. lukeyouell/craft-readtime

AbandonedCraft-plugin[Utility &amp; Helpers](/categories/utility)

lukeyouell/craft-readtime
=========================

Calculate the estimated read time for content.

1.5.0(7y ago)103.9k15[12 issues](https://github.com/lukeyouell/craft-readtime/issues)[3 PRs](https://github.com/lukeyouell/craft-readtime/pulls)MITPHP

Since Jun 6Pushed 2y ago2 watchersCompare

[ Source](https://github.com/lukeyouell/craft-readtime)[ Packagist](https://packagist.org/packages/lukeyouell/craft-readtime)[ RSS](/packages/lukeyouell-craft-readtime/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (8)Dependencies (1)Versions (9)Used By (0)

[![icon](src/icon.svg)](src/icon.svg)

Read Time plugin for Craft CMS 3
================================

[](#read-time-plugin-for-craft-cms-3)

Calculate the estimated read time for content.

Installation
------------

[](#installation)

#### Requirements

[](#requirements)

This plugin requires Craft CMS 4.0.0, or later.

#### Plugin Store

[](#plugin-store)

Log into your control panel and click on 'Plugin Store'. Search for 'Read Time'.

#### Composer

[](#composer)

1. Open your terminal and go to your Craft project:

```
cd /path/to/project
```

2. Then tell Composer to load the plugin:

```
composer require jalendport/craft-readtime
```

3. In the Control Panel, go to Settings → Plugins and click the “Install” button for Read Time.

Configuration
-------------

[](#configuration)

The average user read speed is set at 200 words per minute by default, this can be changed in the plugin settings.

Using the Filter
----------------

[](#using-the-filter)

The `|readTime` filter returns a [TimeModel](#timemodel) of how long it takes the average user to read the provided content. The value provided can be a string or an array of values.

Seconds are included by default, but can be disabled by using `|readTime(false)` - this only affects the human time format.

#### Examples

[](#examples)

```
{{ string|readTime }}

Returns: 30 seconds
```

```
{{ richTextField|readTime }}

Returns: 2 minutes, 40 seconds
```

```
{{ richTextField|readTime(false) }}

Returns: 3 minutes
```

Using the Function
------------------

[](#using-the-function)

The `readTime()` function returns a [TimeModel](#timemodel) for matrix fields or the whole entry based on it's field layout.

Seconds are included by default, but can be disabled by adding a second parameter of `false` - this only affects the human time format.

#### Examples

[](#examples-1)

```
{{ readTime(entry) }} or {{ readTime(entry.matrixField.all()) }}
```

```
{{ readTime(entry, false) }} or {{ readTime(entry.matrixField.all(), false) }}
```

TimeModel
---------

[](#timemodel)

Whenever you're dealing with the read time in your template, you're actually working with a TimeModel object.

### Simple Output

[](#simple-output)

Outputting a TimeModel object without attaching a property or method will return the time in the form of a human time duration.

```
{{ string|readTime }}

{{ readTime(entry) }}

{{ readTime(entry.matrixField.all()) }}

```

### Properties

[](#properties)

#### `human`

[](#human)

The human time duration.

#### `interval(format)`

[](#intervalformat)

A `DateInterval` object. You'll need to set the [format](http://php.net/manual/en/dateinterval.format.php) as a parameter:

```
{% set time = readTime(entry) %}

{{ time.interval('%h hours, %i minutes, %s seconds') }}
```

#### `seconds`

[](#seconds)

The total number of seconds.

#### `minutes`

[](#minutes)

The total number of minutes.

#### `hours`

[](#hours)

The total number of hours.

Overriding Plugin Settings
--------------------------

[](#overriding-plugin-settings)

If you create a [config file](https://docs.craftcms.com/v3/configuration.html) in your `config` folder called `read-time.php`, you can override the plugin’s settings in the Control Panel. Since that config file is fully [multi-environment](https://docs.craftcms.com/v3/configuration.html) aware, this is a handy way to have different settings across multiple environments.

Here’s what that config file might look like along with a list of all of the possible values you can override.

```
