PHPackages                             zaengle/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. zaengle/craft-readtime

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

zaengle/craft-readtime
======================

Craft Read Time

1.0.2(9mo ago)0729[1 PRs](https://github.com/zaengle/craft-readtime/pulls)PHPPHP &gt;=8.0.2CI passing

Since Feb 4Pushed 5mo ago3 watchersCompare

[ Source](https://github.com/zaengle/craft-readtime)[ Packagist](https://packagist.org/packages/zaengle/craft-readtime)[ RSS](/packages/zaengle-craft-readtime/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (6)Versions (6)Used By (0)

Readtime Field
==============

[](#readtime-field)

Readtime provides a new Field Type called Read Time. When added to an entry, the field will loop through all of the content fields and calculate the estimated read time of the text content and save the value for use on the front end. The Read Time field will update every time the Entry is saved.

Settings
--------

[](#settings)

The Words per Minute value used to determine read time can be changed in the plugin settings. The default is set to 200 words per minute.

How to Use
----------

[](#how-to-use)

Create a new field with the Read Time field type and add it to your page Entry Type. The Read Time value will automatically update when the Entry is saved. If you save content within a CKEditor longform entry block, you will need to also save the parent entry to update the Read Time value.

To display the field on the front end, call the field in the template by the field handle and apply the filter of the desired display:

### Human

[](#human)

This is the default display type. It will automatically format the time in hours, minutes, and seconds. If hours or minutes do not apply, they will be excluded from the display.

```
{{ entry.fieldHandle }}
{{ entry.fieldHandle.human }}
```

Example: 211 seconds will display as `3 minutes and 31 seconds`.

### Simple

[](#simple)

Same as the Human display but the seconds will be excluded. The minutes will round to the nearest minute.

```
{{ entry.fieldHandle.simple }}
```

Example: 211 seconds will display as `4 minutes`.

### Rounded

[](#rounded)

If the Read Time is under a minute or over an hour, the display will get rounded. Otherwise, it will show the Simple value. Under a minute will display "Less than a minute". Over an hour will round the minutes to the nearest 5 minute value.

```
{{ entry.fieldHandle.rounded }}
```

Example: 55 seconds will display as `Less than a minute`.

Example: 3840 seconds will display as `1 hour and 5 minutes`.

### DateTime

[](#datetime)

Outputs the Read Time value as a date/time value that can be formatted.

```
{{ entry.fieldHandle.dateInterval|date('%h hours, %i minutes, %s seconds') }}
```

Example: 211 seconds will display as `0 hours, 3 minutes, 31 seconds`.

Content Updates
---------------

[](#content-updates)

If the field is added to a section after content is added, the content will need to be resaved to fill the Read Time field value. To resave a whole section at once, use the CLI command:

`craft resave/entries --section sectionHandle`

If you have a lot of entries and want to add it to the Craft queue, add the `--queue` flag to the command.

Compatibility
-------------

[](#compatibility)

The Read Time plugin will work on both Craft 4 and Craft 5. Currently, there is only support for Craft native fields and CKEditor.

Read Time Roadmap
-----------------

[](#read-time-roadmap)

- Tests
- Update Longform logic when CKEditor v5.0 is released

Brought to you by [Zaengle Corp](https://zaengle.com/)

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance64

Regular maintenance activity

Popularity15

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 87.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~89 days

Total

3

Last Release

284d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/469bfbd3e1b1b6b42d65bf3fba4e6c7a0c0113188d7efc17411800d5686f5655?d=identicon)[tomdavies](/maintainers/tomdavies)

![](https://www.gravatar.com/avatar/d5562b4d7d0b994350c229be13a5a1e1f45e593abe55da7475cae551f2a9244e?d=identicon)[zaengle](/maintainers/zaengle)

---

Top Contributors

[![tomdavies](https://avatars.githubusercontent.com/u/136308?v=4)](https://github.com/tomdavies "tomdavies (14 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")[![jenny-ccc](https://avatars.githubusercontent.com/u/176596694?v=4)](https://github.com/jenny-ccc "jenny-ccc (1 commits)")

###  Code Quality

Static AnalysisPHPStan

Code StyleECS

Type Coverage Yes

### Embed Badge

![Health badge](/badges/zaengle-craft-readtime/health.svg)

```
[![Health](https://phpackages.com/badges/zaengle-craft-readtime/health.svg)](https://phpackages.com/packages/zaengle-craft-readtime)
```

###  Alternatives

[spicyweb/craft-neo

A Matrix-like field type with block hierarchy

395798.1k10](/packages/spicyweb-craft-neo)[verbb/formie

The most user-friendly forms plugin for Craft.

101372.9k40](/packages/verbb-formie)[solspace/craft-freeform

The most flexible and user-friendly form building plugin!

52664.9k12](/packages/solspace-craft-freeform)[supercool/tablemaker

Create customizable and user-defined table fields.

40141.7k](/packages/supercool-tablemaker)[verbb/vizy

A flexible visual editor field for Craft.

4348.6k](/packages/verbb-vizy)[verbb/social-poster

Automatically post entries to social media.

918.5k](/packages/verbb-social-poster)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
