import * as dateFns from 'date-fns'
import { toZonedTime } from 'date-fns-tz'

interface UserTimeProperties {
  timestamp: number,
  timezone: string,
  format: string
}

export function userTime({ timestamp = Date.now()/1000, timezone = 'Etc/UTC', format }: UserTimeProperties) : string {
  return dateFns.isValid(timestamp) &&
    dateFns.format(
        toZonedTime(
        dateFns.fromUnixTime(timestamp),
        timezone
      ),
      format
    ) || '⏰ not set'
}