Daniel Craig overtakes Roger Moore this weekend to become cinema’s longest-serving James Bond.

As of Saturday, Craig will have held the role of 007 for 5,119 days – almost exactly 14 years.

The British actor officially took on the mantle of the world’s most famous secret agent on October 14 2005.

Since then he has starred in four Bond films, the most recent of which, Spectre, was released in October 2015.

By contrast, Roger Moore clocked up seven Bond films during his 5,118-day stint.

Moore officially held the role from August 1 1972, when he was announced as the new 007, until August 6 1986, when Timothy Dalton was confirmed as Moore’s successor.

Roger Moore
Roger Moore at the press conference on August 1 1972 when he was announced as the new James Bond (PA)

Daniel Craig’s time in the role will continue at least until April 2020, when the next Bond film, No Time To Die, is due to be released.

Craig’s predecessor as Bond, Pierce Brosnan, is third place in the rankings, while the original 007, Sean Connery, is fourth.

Timothy Dalton, who appeared in two films, is fifth.

George Lazenby, star of just one Bond film, is in last place.

Time spent in the role of James Bond
(PA Graphics)

The figures have been compiled by the PA news agency.

To ensure a fair comparison, the rankings are based on the period from the day each actor was confirmed as James Bond to the day their successor was formally announced.

Sean Connery’s appearance in 1983’s unofficial 007 film Never Say Never Again, has not been included in the calculations.

The James Bond franchise will celebrate its 60th anniversary in 2022, having begun in 1962 with Dr No.

Sean Connery
The publicity shot issued on November 3 1961 when Sean Connery was announced as having been cast to play James Bond in Dr No (PA)

Here is the full list of how long each actor has played James Bond in the official franchise, as of October 19 2019:

Daniel Craig: 5,119 days
Roger Moore: 5,118 days
Pierce Brosnan: 4,146 days
Sean Connery: 3,049 days
Timothy Dalton: 2,863 days
George Lazenby: 875 days