我想根据不是基于UTC的用户时间发送推送通知。我尝试了push_time:新日期(pushDt)它在上午6点30分(UTC)成功触发,但我想根据用户当地时间触发它。 / p>
Parse.Cloud.job("PushNtfct", function(request, status) {
function dateFormat(date, format) {
format = format.replace("DD", (date.getDate() < 10 ? '0' : '') + date.getDate());
format = format.replace("MM", (date.getMonth() < 9 ? '0' : '') + (date.getMonth() + 1));
format = format.replace("YYYY", date.getFullYear());
return format;
}
var todayDt = new Date();
todayDt.setDate(todayDt.getDate()+1);
var pushDt = dateFormat(todayDt , "YYYY-MM-DD")+ "T06:30:00";
Parse.Push.send({
channels: ["Daily"],
push_time: new Date(pushDt),
data: {
alert: "Daily"
}
}, { success: function() {
console.log("Succuss with Time, Local Push notification time was sent at : " + pushDt);
}, error: function(err) {
console.log(err);
}
}).then(function() {
// Set the job's success status
status.success("Successfully Ran");
}, function(error) {
// Set the job's error status
status.error("Fuck ..some damn error");
});
});
答案 0 :(得分:0)
Installation
对象有设备timeZone
,它通常是一个字符串,您可以使用moment-timezone
库将此字符串解码为合理的UTC +偏移量,您可以将其编码为{{ 1}}您的日期的一部分,以确保您的推送是在用户的当地时间发送的。您"Z"
和Parse.User
的关联方式取决于您。