Just to confirm, are you trying to find all items where the PM DATE is between today and the next 30 days (for example, from November 21 through December 21), if the PM DATE equals today, or get items where today's date plus 30 days equals the PM DATE, and then send an email for those items? The approach depends on your answer—one way will send up to 30 reminders, while the other two will only send one reminder.
Also note that in conditions and query filters, dates need to be formatted in ISO 8601 format for them to work (yyyy-MM-ddTHH:mm:ssZ). For what you’re asking, you probably don’t need to convert to Eastern Time because SharePoint stores all dates and times in UTC. You’d only need to convert to Eastern Time if you want to display the date/time in the email message.
I would also use a filter query in the Get items action rather than retrieving all items and then using a condition in an apply to each to check each one. This will greatly improve performance and prevent issues when the list exceeds 5,000 items. Just make sure the PM DATE field is indexed, as filter queries only work with indexed fields once your list hits 5,000 items.
Here’s an example of a filter query from one of my flows to return items where the Notice Date is exactly 30 days from today (so you only send one reminder):
NoticeDate ge '@{addDays(startOfDay(utcNow()),30)}' and NoticeDate le '@{addDays(startOfDay(utcNow()),31)}'
You just need to replace NoticeDate with the internal name of your PM DATE field.