Parse platform 将带有日期字符串的列转换为日期列的云代码
在我的解析应用程序中,表中有一列被错误地定义为string,而它应该是一个日期。不幸的是,它已经填充了许多行。例如,字符串数据的格式为: 11 05 18 14 04 PDT (我相信会是:yy-MM-dd-hh-MM-z) 我想运行一个云代码作业,从每一行读取字符串数据,并将实际日期存储在另一列中(假设这个新列存在)。转换完成后,我会手动删除原始的、错误的字符串列 下面是我目前拥有的,除了导入的时区在转换过程中丢失(从PDT到GMT)之外,我现在正在工作Parse platform 将带有日期字符串的列转换为日期列的云代码,parse-platform,Parse Platform,在我的解析应用程序中,表中有一列被错误地定义为string,而它应该是一个日期。不幸的是,它已经填充了许多行。例如,字符串数据的格式为: 11 05 18 14 04 PDT (我相信会是:yy-MM-dd-hh-MM-z) 我想运行一个云代码作业,从每一行读取字符串数据,并将实际日期存储在另一列中(假设这个新列存在)。转换完成后,我会手动删除原始的、错误的字符串列 下面是我目前拥有的,除了导入的时区在转换过程中丢失(从PDT到GMT)之外,我现在正在工作 Parse.Cloud.job("pu
Parse.Cloud.job("publicationDateMigration", function(request, status) {
// Set up to modify user data
var moment = require('moment');
Parse.Cloud.useMasterKey();
var counter = 0;
// Query for all episodes
var PSEpisode = Parse.Object.extend("PSEpisode");
var query = new Parse.Query(PSEpisode);
query.doesNotExist("publicationDate")
query.limit(10);
query.find({
success: function(results) {
console.log("preparing for loop-");
var i=0;
while (results[i]){
var convertedPubDate = moment(results[i].get('pubDate'), "YY MM DD HH mm ss Z").toDate();
console.log(“unconverted date is " + results[i].get('pubDate'));
console.log("converted date is " + convertedPubDate);
results[i].set('publicationDate', convertedPubDate);
i++;
}
Parse.Object.saveAll(results);
status.success("Date migration completed successfully.");
},
error: function(error) {
status.error("Uh oh, something went wrong with date conversion.");
}
});
});
根据说明,“Z”或“ZZ”占位符用于:时区偏移为+07:00
或+0700
它不理解“PDT”,所以您需要先进行替换,以将其转换为实际偏移量
var rawPubDate = results[i].get('pubDate');
var fixedPubDate = rawPubDate.replace('PDT', '-07:00');
fixedPubDate = fixedPubDate.replace('PST', '-08:00');
// add any others you need
var convertedPubDate = moment(fixedPubDate, 'YY MM DD HH mm ss Z').toDate();
console.log('pubDate: ' + rawPubDate
+ ' -> ' + fixedPubDate
+ ' -> ' + convertedPubDate);
// ... etc ...