President Trump called Sen. John McCain (R-Ariz.) a "crusty voice" in Washington, saying Republicans miss him, and need him for an upcoming Senate health-care vote, on July 17 at the White House. (The Washington Post)

President Trump and Sen. John McCain (R-Ariz.) haven't always had the warmest relationship. But as the senator recovers from surgery that will keep him out of Washington for at least a week, the president offered his well wishes — if only because he'll need McCain's vote to pass the Senate's health-care bill.

“We hope John McCain gets better very soon because we miss him,” Trump said. “And I can tell you, he’s a crusty voice in Washington. Plus, we need his vote.

“And he’ll be back. And he will be back sooner than somebody else would be back. He’ll be back soon,” he added.

Trump's unfiltered moment came during a White House event on “Made in America” products Monday during a riff lamenting the “job-killing Obamacare,” which Republicans are trying to repeal and replace in Congress.

But the effort is stalled in the Senate as Republicans struggle to prevent their members from defecting. They can only afford to lose the support of two members if the bill is to pass. Senate Majority Leader Mitch McConnell postponed a vote on the Senate bill because of McCain's absence.

McCain has often been one of Trump's most vocal critics. And during the presidential campaign, Trump disparaged McCain's military service because McCain was a prisoner of war.

“He’s not a war hero,” Trump said in July 2015 — almost two years ago to the day. “He was a war hero because he was captured. I like people who weren’t captured.”

During the weekend, the White House issued a statement from a spokeswoman wishing McCain a “speedy recovery.”